くらしTEPCOの省エネBINGOで1日目、2日目にビンゴになる確率を求めてみた
今回はくらしTEPCOの省エネBINGOで1日目、2日目にビンゴになる確率を求めてみた結果についてご紹介していこうと思います。
くらしTEPCOの省エネBINGOで1日目、2日目にビンゴになる確率を求めてみた
くらしTEPCOに省エネBINGOというものがあります。
真ん中の5番は最初から空いていますが、1日に二つランダムで穴が空き、縦横斜めのどれか1ラインでも揃えばビンゴとなり、抽選でポイントがもらえます。
1ポイント1円で交換できるので、ビンゴになれば少なくとも1円お得となります。
今回は何日目でビンゴになってポイントがもらえるのか計算して確率を求めてみました。
ビンゴを数学的に計算して求めるのは難しいため、プログラムを組んで総当たりで調査しました。
結果は、
1回でビンゴになる確率
14.285714285714285%
2回目までにビンゴになる確率
88.57142857142857%
となりました。
こうしてみると、1日目でビンゴになる確率はそれなりにあり、3日目で必ずビンゴになりますが、2日目以内にビンゴになる確率も約88.5%とそれなりに高いです。
組んだソースコードは下記となります。(少し無駄なprintなどがあります)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 |
init_block = { '1': 0, '2': 0, '3': 0, '4': 0, '5': 1, '6': 0, '7': 0, '8': 0, '9': 0, } def bingo_check(block): # 横に揃う if block['1'] and block['2'] and block['3']: return True if block['4'] and block['5'] and block['6']: return True if block['7'] and block['8'] and block['9']: return True # 縦に揃う if block['1'] and block['4'] and block['7']: return True if block['2'] and block['5'] and block['8']: return True if block['3'] and block['6'] and block['9']: return True # 斜めに揃う if block['1'] and block['5'] and block['9']: return True if block['3'] and block['5'] and block['7']: return True # どこもビンゴにならない return False check_list = [] # try_check_num_list layer_1_ct = 0 layer_2_ct = 0 ret = 0 for i in range(1, 10): if init_block[str(i)] == 1: continue block1 = init_block.copy() block1[str(i)] = 1 for j in range(i, 10): if block1[str(j)] == 1: continue check_ct = 1 block2 = block1.copy() block2[str(j)] = 1 layer_1_ct += 1 if bingo_check(block2): check_list.append(check_ct) continue for k in range(1, 10): if block2[str(k)] == 1: continue block3 = block2.copy() block3[str(k)] = 1 for l in range(k, 10): if block3[str(l)] == 1: continue check_ct = 2 block4 = block3.copy() block4[str(l)] = 1 layer_2_ct += 1 if bingo_check(block4): check_list.append(check_ct) continue for m in range(1, 10): if block4[str(m)] == 1: continue block5 = block4.copy() block5[str(m)] = 1 for n in range(m, 10): if block5[str(n)] == 1: continue check_ct = 3 block6 = block5.copy() block6[str(n)] = 1 if bingo_check(block6): check_list.append(check_ct) continue print(check_list) print(check_list.count(1)) print(check_list.count(2)) print(check_list.count(3)) print(len(check_list)) print(layer_1_ct) print(layer_2_ct) print('1回でビンゴになる確率') once_result = check_list.count(1)/layer_1_ct print(once_result * 100, '%') print('2回目までにビンゴになる確率') print((once_result + (1 - once_result) * check_list.count(2)/layer_2_ct) * 100, '%') |
終わりに
今回はくらしTEPCOの省エネBINGOで1日目、2日目にビンゴになる確率を求めてみた結果についてご紹介いたしました。
ディスカッション
コメント一覧
まだ、コメントがありません