Keiba Vision ドキュメント
予想の中身を、
数式で読み解く。
競馬予想アプリ Keiba Vision が「どの馬が勝ちそうか」をどうやって計算しているのか。中学数学から始めて、確率モデル、モンテカルロ法、微分、そして専門家が使う最尤推定やケリー基準まで。すべての数式を実際のコードと結びつけて説明します。
このドキュメントで分かること
01
確率の基本
期待値・分散・正規分布・中心極限定理を、アプリで使う分だけ最短で。
02乱数のつくり方
xorshift32 の 3 行が周期 2³²−1 の乱数を生む理由。
03予想エンジン
加重平均で点数をつける仕組みと、その「勝率」が確率ではない理由。
04モンテカルロ法
10 万回走らせて確率を数える。誤差 ±0.15 ポイントの根拠。
05能力値と適性
平方根と対数で戦績を数値化し、順位で 45〜99 に配る。
063D の運動学
着順から「走り」を逆算する式と、その単調性・連続性。
07コースの幾何学
スタジアム曲線、接線と法線、鏡映、atan2。
08カメラとアニメーション
指数関数で、どの画面でも同じ速さで動くカメラ。
09血統の数学
奇跡の血量 18.75% と Wright の近交係数を確率から導く。
10本物の予想へ
控除率、softmax、Harville の偏り、対数損失、ケリー基準。
このドキュメントの約束
- 数式はすべて実際のコードと 1 対 1 で対応し、コードの見出しから GitHub の実物に飛べます
- 数値の例は実際のアプリが出した値 です (有馬記念のサンプル出馬表など)
- うまくいっていない所も書きます。予想エンジンの「勝率」が確率になっていないこと、3D の逃げ馬のリードが大きすぎることなど、限界と直し方まで説明します
- 各ページに 対話型のデモ と 練習問題 があります。モンテカルロのデモは、アプリと同じ Zig の WebAssembly を動かしています