3体問題

日常の数学・物理    ーー それでも地球はまわっている



ビンゴの確率


市販のビンゴはどのくらいの確率であたるものなのか?     (5 ×5マスに1~75が書かれている場合)

ビンゴの確率分布

  -10000000回試行の結果にて-(1000万回)       さらに 100000000回試行(1億回)こちら
---------------------------------------------------------------------------------------------------------------
 1 回目|    0 回    0 %   0 %
2 回目| 0 回 0 % 0 %
3 回目| 0 回 0 % 0 %
4 回目| 22 回 .00022 % .00022 %
5 回目| 158 回 .00158 % .0018 %
6 回目| 334 回 .00334 % .00514 %
7 回目| 708 回 .00708 % .01222 %
8 回目| 1313 回 .01313 % .02535 %
9 回目| 2120 回 .0212 % .04655 %
10 回目| 3366 回 .03366 % .08021 %
11 回目| 4828 回 .04828 % .12849 %
12 回目| 7005 回 .07005 % .19854 %
13 回目| 9429 回 .09429 % .29283 %
14 回目| ■ 12772 回 .12772 % .42055 %
15 回目| ■ 16724 回 .16724 % .58779 %
16 回目| ■ 21030 回 .2103 % .79809 %
17 回目| ■ 26958 回 .26958 % 1.06767 % | 100人中1人あたる
18 回目| ■ 33150 回 .3315 % 1.39917 %
19 回目| ■■ 40498 回 .40498 % 1.80415 % | 50人中1人あたる
20 回目| ■■ 48979 回 .48979 % 2.29394 %
21 回目| ■■ 58423 回 .58423 % 2.87817 %
22 回目| ■■■ 69264 回 .69264 % 3.57081 %
23 回目| ■■■ 81172 回 .81172 % 4.38253 %
24 回目| ■■■■ 94136 回 .94136 % 5.32389 % | 20人中1人あたる
25 回目| ■■■■ 108622 回 1.08622 % 6.41011 %
26 回目| ■■■■■ 123168 回 1.23168 % 7.64179 %
27 回目| ■■■■■■ 140565 回 1.40565 % 9.04744 %
28 回目| ■■■■■■ 158187 回 1.58187 % 10.62931 % | 10人中1人あたる
29 回目| ■■■■■■■ 176431 回 1.76431 % 12.39362 %
30 回目| ■■■■■■■■ 196659 回 1.96659 % 14.36021 %
31 回目| ■■■■■■■■■ 216935 回 2.16935 % 16.52956 %
32 回目| ■■■■■■■■■ 236330 回 2.3633 % 18.89286 %
33 回目| ■■■■■■■■■■ 256534 回 2.56534 % 21.4582 %
34 回目| ■■■■■■■■■■■ 277509 回 2.77509 % 24.23329 %
35 回目| ■■■■■■■■■■■■ 296641 回 2.96641 % 27.1997 %
36 回目| ■■■■■■■■■■■■■ 316135 回 3.16135 % 30.36105 %
37 回目| ■■■■■■■■■■■■■ 332811 回 3.32811 % 33.68916 % | 3 人中1人あたる
38 回目| ■■■■■■■■■■■■■■ 349474 回 3.49474 % 37.1839 %
39 回目| ■■■■■■■■■■■■■■■ 363405 回 3.63405 % 40.81795 %
40 回目| ■■■■■■■■■■■■■■■ 374715 回 3.74715 % 44.5651 %
41 回目| ■■■■■■■■■■■■■■■ 383294 回 3.83294 % 48.39804 % | 2人中1人あたる 平均回数= 41.3634394 回
42 回目| ■■■■■■■■■■■■■■■■ 390295 回 3.90295 % 52.30099 %
43 回目| ■■■■■■■■■■■■■■■■ 393572 回 3.93572 % 56.23671 %
44 回目| ■■■■■■■■■■■■■■■■ 391812 回 3.91812 % 60.15483 %
45 回目| ■■■■■■■■■■■■■■■ 386583 回 3.86583 % 64.02066 %
46 回目| ■■■■■■■■■■■■■■■ 379865 回 3.79865 % 67.81931 %
47 回目| ■■■■■■■■■■■■■■■ 367763 回 3.67763 % 71.49694 %
48 回目| ■■■■■■■■■■■■■■ 351664 回 3.51664 % 75.01358 %
49 回目| ■■■■■■■■■■■■■ 333225 回 3.33225 % 78.34583 %
50 回目| ■■■■■■■■■■■■■ 312620 回 3.1262 % 81.47203 %
51 回目| ■■■■■■■■■■■■ 288376 回 2.88376 % 84.35579 %
52 回目| ■■■■■■■■■■ 262379 回 2.62379 % 86.97958 %
53 回目| ■■■■■■■■■ 235798 回 2.35798 % 89.33756 %
54 回目| ■■■■■■■■ 208911 回 2.08911 % 91.42667 %
55 回目| ■■■■■■■ 181409 回 1.81409 % 93.24076 %
56 回目| ■■■■■■ 154304 回 1.54304 % 94.7838 %
57 回目| ■■■■■ 128433 回 1.28433 % 96.06813 %
58 回目| ■■■■ 105010 回 1.0501 % 97.11823 %
59 回目| ■■■ 83483 回 .83483 % 97.95306 %
60 回目| ■■■ 64303 回 .64303 % 98.59609 %
61 回目| ■■ 48181 回 .48181 % 99.0779 %
62 回目| ■ 34314 回 .34314 % 99.42104 %
63 回目| ■ 23578 回 .23578 % 99.65682 %
64 回目| ■ 15449 回 .15449 % 99.81131 %
65 回目| 9395 回 .09395 % 99.90526 %
66 回目| 5108 回 .05108 % 99.95634 %
67 回目| 2737 回 .02737 % 99.98371 %
68 回目| 1133 回 .01133 % 99.99504 %
69 回目| 377 回 .00377 % 99.99881 %
70 回目| 107 回 .00107 % 99.99988 %
71 回目| 12 回 .00012 % 100 %
72 回目| 0 回 0 % 100 %
73 回目| 0 回 0 % 100 %
74 回目| 0 回 0 % 100 %
75 回目| 0 回 0 % 100 %


! 十進BASIC
!---------------------ビンゴ  シミュレーション-----------------
RANDOMIZE
DIM BING_dat(25),BING_st(25)
DIM yok(5),tat(5)
DIM NUM_FL(75) !  1~75  ナンバー既出かどうか
DIM cnt(1000000)
DIM DOSU_SUM(75)

LET TST=100 !  施行回数 100 ~ 100000
!------------------以上初期設定-----------------------------


FOR Q=1 TO TST
   CALL CLR_JOB !初期化処理  
   !   WAIT DELAY 5
   CALL bingo1
   LET cnt(Q)=cnt0
NEXT Q

FOR  Q=1  TO TST
! PRINT Q;"人目=";cnt(Q);"回でビンゴ"
   LET SUM_cnt=cnt(Q)+SUM_cnt
NEXT Q

PRINT ""
PRINT "平均回数=";SUM_cnt/TST;"回"

FOR Q=1 TO TST
   FOR I=1 TO 75
      IF cnt(Q)=I THEN
         LET DOSU_SUM(I)=DOSU_SUM(I)+1
      END IF
   NEXT I
NEXT Q

FOR I=4 TO 75
   PRINT I;"回目で終了  ";
   PRINT REPEAT$("■",DOSU_SUM(I)*200/TST) ;DOSU_SUM(I);"回 ";DOSU_SUM(I)*100/TST;"%"
NEXT I

!----以下、サブプログラム----
SUB bingo1
   CALL  Makesheet !  ビンゴの紙を作成する   
   FOR KKK=1 TO 100
      LET cnt0=KKK
      ! PRINT KKK;"回目--------"
      CALL QUJI
      CALL Bingo_Hantei !  ビンゴ判定処理1
      CALL Bigo_end_PRT !  ビンゴ終了処理
      IF  BING_CLR=1 THEN
         EXIT FOR
      END IF
   NEXT KKK
END SUB


SUB  Bingo_Hantei  !  ビンゴの判定

   FOR L=1 TO 5 !  行状態
      LET L2=(L-1)*5
      LET yok(L)=BING_st(L2+1)+BING_st(L2+2)+BING_st(L2+3)+BING_st(L2+4)+BING_st(L2+5)
   NEXT  L
   
   FOR L=1 TO 5  !  列状態
      LET tat(L)=BING_st(L+0)+BING_st(L+5)+BING_st(L+10)+BING_st(L+15)+BING_st(L+20)
   NEXT  L
   
   !  ななめ状態
   LET nan1=BING_st(1)+BING_st(7)+BING_st(13)+BING_st(19)+BING_st(25)
   LET nan2=BING_st(5)+BING_st(9)+BING_st(13)+BING_st(17)+BING_st(21)
   
   FOR LLL=1 TO 5 !  状態判定
      IF yok(LLL)=5 OR tat(LLL)=5 OR nan1=5  OR nan2=5    THEN
         LET BING_CLR=1
      END IF
   NEXT LLL
   
END SUB

 

SUB QUJI
   DO  !  1~75でこれまでに出ていない数字を乱数で出す
      LET lot75=MOD(INT(RND*1000000),75)+1 ! 1~75を発生させる
   LOOP UNTIL NUM_FL(lot75)=0
   
   LET NUM_FL(lot75)=1  !出た数字は、フラグを立てる
   
   PRINT lot75;"が出た-"
   LET STRK=0
   FOR I=1 TO 25
      IF BING_dat(I)=lot75  THEN
         PRINT I;"番目のマスが当たった!"
         LET BING_st(I)=1
         LET STRK=1
      END IF
   NEXT I
   IF      STRK=0 THEN
      PRINT "--ハズレ--"
   END IF
   CALL PRT_SQ
END SUB

SUB PRT_SQ  !  状態表示
   FOR I=1 TO 25
      IF BING_st(I)=1 THEN
         PRINT "●";
      ELSE
         PRINT "□";
      END IF
      
      IF I=5 OR I=10 OR  I=15 OR I=20 OR I=25   THEN
         PRINT ""
      END IF
      IF I=25   THEN
         PRINT ""
      END IF
   NEXT I
END SUB


SUB Makesheet  !
! PRINT "□□□□□□□□  紙側データの作成  □□□□□□□□□"
 
!  <Wikipediaより>
!  なお、通常はまったくのランダムで番号が書かれているわけではなく、
!  一番左の列は1~15の数字の中から5個選ばれている。
!  同様に、左から2列目は16~30、中央列は31~45、右から2列目は46~60、
!  一番右の列は61~75から5個ずつ(中央列のみフリースポットがあるので4個)選ばれている。
 
   FOR I=1 TO 25
      DO
         LET FL=0
         IF I=1 OR I=6 OR I=11 OR I=16 OR I=21 THEN !最左列
            LET LOTa=MOD(INT(RND*1000000),15)+1 ! 1~15を発生させる
         END IF
         IF I=2 OR I=7 OR I=12 OR I=17 OR I=22 THEN !第2列
            LET LOTa=MOD(INT(RND*1000000),15)+1+15 ! 16~30を発生させる
         END IF
         IF I=3 OR I=8 OR I=13 OR I=18 OR I=23 THEN !第3列
            LET LOTa=MOD(INT(RND*1000000),15)+1+30 ! 31~45を発生させる
         END IF
         IF I=4 OR I=9 OR I=14 OR I=19 OR I=24 THEN !第4列
            LET LOTa=MOD(INT(RND*1000000),15)+1+45 ! 46~60を発生させる
         END IF
         IF I=5 OR I=10 OR I=15 OR I=20 OR I=25 THEN !第5列
            LET LOTa=MOD(INT(RND*1000000),15)+1+60 ! 61~75を発生させる
         END IF
         
         FOR JJJ=1 TO I-1
            IF BING_dat(JJJ)=LOTa THEN
               LET FL=1   
            END IF
         NEXT JJJ
      LOOP UNTIL FL=0  !前のデータと重複していたら再度やり直し      
      
      LET BING_dat(I)=LOTa
      
      IF I<>13  THEN
         PRINT  I;"番マス  "; BING_dat(I)
      ELSE
         LET BING_dat(13)=0  !  13番だけは、0にしておく。
         PRINT  I;"番マス  "; BING_dat(13)
      END IF
   NEXT I
   
   
   ! PRINT "□□□□□□□□□  データ作成/完了  □□□□□□□□□□"
   ! PRINT ""
END SUB


SUB  CLR_JOB
   FOR I=1 TO 75
      IF I=<25 THEN
         LET BING_dat(I)=0
         LET BING_st(I)=0
      END IF
      IF I=<5 THEN
         LET yok(I)=0
         LET tat(I)=0
      END IF
      
      LET NUM_FL(I)=0
   NEXT I
   LET BING_st(13)=1
   LET nan1=0
   LET nan2=0
   LET BING_CLR=0
   LET L2=0
   LET STRK=0
   LET lot75=0
   LET LOTa=0
END SUB

SUB Bigo_end_PRT
   IF  BING_CLR=1 THEN
      PRINT "●●●  ビンゴ!!    ビンゴ!!    ビンゴ!!  ●●●  "
   END IF
END SUB

END