調査の目的

ナンバーズの予想で、よく出ている数字(当せん回数の多い数字)を予想数字として購入することがあると思います。

そこで「本当によく出る数字が当たりやすいのか?」をナンバーズ3の統計データを用いて調べてみました。

調査の結果

ナンバーズ3でよく出る数字を予想数字とした場合の当せん結果は下表の通りです。 今回の調査結果では、収支はマイナス、当せん確率もボックス以外は理論値より低くなっています。

位ごとによく出ている数字を予想数字とした場合の予想結果 (第4596回を最新回号とした過去1,000回のデータからの分析結果)
  予想数 当せん回数 当せん金額(※1) 当せん確率 購入金額(※2) 収支(※3)
ストレートで買い続けた場合 1,065個 0回 0円 0.00% 213,000円 -213,000円
ボックスで買い続けた場合 1,065個 10回 150,000円 0.94% 213,000円 -63,000円
ミニで買い続けた場合 1,065個 8回 72,000円 0.75% 213,000円 -141,000円
  • (※1) 当せん金額は理論値を用いて算出。ストレートは90,000円、ボックスの当せん金額は3個の数字がすべて異なる場合の理論値で15,000円。ミニは9,000円。計算式は「当せん回数 x 当せん金額の理論値」
  • (※2) 予想数は1,065個だったので、1口の購入金額200円を掛けて計算。「1065 x 200」。
  • (※3) 計算式は「当せん金額 - 購入金額」。

第4596回(抽せん日:2017年2月10日)を最新回号として過去1,000回分のデータから分析しましたが、各回の予想数字は必ずしも1つとは限りません。 位ごとに当たっている回数が最も多い数字を選んでいますので、当せん回数が同じになる数字も出てきます。 よく出る数字を組み合わせて、それらすべてを予想数字としているので予想数字が2個以上になることがあるのです。

また、第3596回から第4595回でよく出る数字の組み合わせは3パターンしかなく、予想数字に偏りが出ることがわかりました。

予想数字予想回数
898151回
938357回
998557回

調査方法

ここからは調査手法の説明になります。 統計について細かいことはわからないという方は読み飛ばしても大丈夫です。

  1. 抽せん数字を位ごとに、第1回から第n-1回の 度数分布 を作成する(n は最新回号)。
  2. 位ごとに度数が最も多い数字選んで、それらを組み合わせたものを予想数字とする。
  3. 予想数字と第n回の抽せん数字を照合して、ストレート、ボックス、ミニについて当せんしているのかを調べる。当せんタイプの優先順位はストレート > ボックス > ミニとする。

調査に使ったプログラムを公開したいところですが整理できていないので、下記にほぼ Python の擬似コードを掲載しておきます。pandas を使うように書いています。

完全なコードではありませんのでコピペしても動きません。アルゴリズムのイメージです。

# 回号の選択
df = numbers3.loc[1:n-1]

# 度数の高い抽せん数字を取得
rankd_df = df[['place100', 'place10', 'place1']].apply(pd.Series.value_counts).rank(method="dense", ascending=False)

# ここで rank が 1 になってる抽せん数字を抜き出す。
# 細かい処理は省略してます。返り値は tuple にする。
p100 = rank_df.place100[rank_df.place100 == 1.0]
p10 = rank_df.place100[rank_df.place100 == 1.0]
p1 = rank_df.place100[rank_df.place100 == 1.0]

# itertools を使って度数の高い抽せん数字を組み合わせる
predict_set = itertools.product(place100, place10, place1)

# 1回の抽せんに対して複数の予想数字が出る場合もあるので
# 予想数字ごとに結果を照合する。
for predict in predict_set:
    # 予想数字と実際の抽せん数字を判定をしてくれるオブジェクトを入れてみた。
    # future は第n回の抽せん数字
    judge_ = Judge(predict, future)

    if judge_.straight():
        label = 'WIN (STRAIGHT)'
    elif judge_.box():
        label = 'WIN (BOX)'
    elif judge_.mini():
        label = 'WIN (MINI)'
    else:
        label = 'LOSE'

最終更新日: 2017年02月25日(土) / カテゴリー: お金・経済


Back to top