slow-starter

なにをやるにもslow start……。

LOTO(1)

これは何?

  • 「LOTO7」の当選確率を計算してみたメモ

計算方法(基本的な考え方)

  • 高校数学(数学A)の「組み合わせ」を利用
    • n個の中からr個選択する場合
      •  _n C_r
    • 37個の中から7個選択する場合(LOTO 7 分母)
      •  _{37} C_7
      • 計算方法
>>> format(int((37*36*35*34*33*32*31)/(7*6*5*4*3*2*1)),',d')
'10,295,472'

pythonでの計算・出力方法

  •  \displaystyle \frac{分子:numerator}{分母:denominator}

    • 分母は「denom」、分子は「numer」とするとよさそう。
    • 分数は「fraction」
  • 分子/分母の結果を小数点以下10桁の小数で表示

>>> from decimal import Decimal
>>> denom_int = int(('10,295,472').replace(',',''))
>>> denom_int
10295472
>>> numer_int = 1
>>> numer_int
1
>>> print("{0:.10f}".format(Decimal(numer_int/denom_int)))
0.0000000971
>>> 
  • 7個から5個選択する組み合わせ(combination)の例
>>> import itertools
>>> l = list(range(1,8))
>>> l
[1, 2, 3, 4, 5, 6, 7]
>>> c_list = list(itertools.combinations(l,5))
>>> print(len(c_list))
21

計算結果一覧表

条件 当せん金(理論値) 分子 分母 確率(1 = 100%) 備考
1 申込数字が本数字7個と全て一致 600,000,000  _7 C_7 = 1 10,295,472 0.0000000971
2 申込数字が本数字6個と一致し、
更にボーナス数字2個のうち1個と一致
7,300,000  _7 C_6 *  _2 C_1 *  _{28} C_0 = 14 10,295,472 0.0000013598
3 申込数字が本数字6個と一致 730,000  _7 C_6 *  _2 C_0 *  _{28} C_1 = 196 10,295,472 0.0000190375
4 申込数字が本数字5個と一致 9,100  _7 C_5 *  _{30} C_2 = 9,135 10,295,472 0.0008872833
5 申込数字が本数字4個と一致 1,400  _7 C_4 *  _{30} C_3 = 142,100 10,295,472 0.0138021841
6 申込数字が本数字3個と一致し、
更にボーナス数字1個または2個と一致
1,000  _7 C_3 *  _2 C_1 *  _{28} C_3
+  _7 C_3 *  _2 C_2 *  _{28} C_2
= 242,550
10,295,472 0.0235589005

結果・感想

  • 1等当せん確率は「0.00000971%」(約1030万分の1)。
  • すべての当せん確率を合計しても「3.8%」程度。
>>> (0.0000000971+0.0000013598+0.0000190375+0.0008872833+0.0138021841+0.0235589005)*100
3.82688623

参考

注釈

  • 無し