2023年の夏から秋にかけて、ロト予想系のリポを2つ作った。当てたいというより、過去データで遊びたかったのが本音。loto6-predict(Python)と any-loto(TypeScript)。

loto6-predict(7月)

まずは Python でデータ取得と分析から。みずほ銀行側の過去当選番号をダウンロードするスクリプトを書いた。

python download_loto6.py   # 過去当選番号を取得

download_loto6.py / download_mini.py / download_bingo5.py でロト6・ミニロト・ビンゴ5 のデータを落として、予想側は何パターンか試した。

  • predict_loto6_linear_regression.py — 線形回帰でとりあえず
  • predict_loto6_hmm.py — 隠れマルコフモデル(HMM)も試した
  • predict_loto6_all.py — まとめて回す用

当然これで当たるわけはないんだけど、「ランダムな系列に無理やりモデルを当てるとどう振る舞うか」を見るのが面白かった。Docker / docker-compose も足して、データ更新を回しやすくしておいた。

any-loto(10〜11月)

Python で出した数字を、Web で触れるようにしたかった。any-loto は Remix + Cloudflare(wrangler.toml)+ Supabase 構成。

  • app/lib/supabase.ts で Supabase にデータ投入
  • app/lib/bingo5.ts に生成ロジック
  • NumberTable.tsx で数字を表示
  • 「角固定」とランダム生成を切り替え

コミットも supabaseでデータ入れるところまで角固定、ランダムbun と、手探りで進めていた跡が残っている。

おわり

分析(Python)と UI(TypeScript)を別リポに分けたけど、データの受け渡しが面倒だったので、後で1つに寄せたくなった。この「計画的娯楽」シリーズは、2025年の loto-optimizer で TypeScript に統合して一区切りになる。第1章はこのへん。