RANDOMIZE PRINT PRINT "トランプビンゴゲーム" PRINT "各自が 1〜13 の自然数のなかから3個の数を選びます。" PRINT "そして、主数、副数、助数 を決めます。" PRINT "ジョーカーを除いてよくシャッフルし、重ねて伏せて置きます。" PRINT "ディーラーが上から順にカードをめくってその数を読み上げます。" PRINT "最初に助数が出たときは、主数が2枚出たものとみなします。" PRINT "2回目に助数が出たときは、副数が1枚出たものとみなします。" PRINT "主数または副数が4枚揃えば、上りになります。" PRINT "ただし、次に上りになる可能性が生じたときは「ビンゴ」と宣言しなければなりません。" PRINT " 主数 = 1 副数 = 2 助数 = 13 の場合" PRINT "1000回行います。何回目に上がるか?" PRINT DIM T(1000),DOSU(1000),RUISEKI(52),FL(52) FUNCTION RND52(q) ! 1〜52を乱数で出す。ただし1度出た数はださない。 DO LET XX=INT(RND*52)+1 LOOP UNTIL FL(XX)=0 LET FL(XX)=1 LET RND52=XX END FUNCTION LET M=1000 FOR i=1 TO M LET A1=0 LET A2=0 LET A13=0 LET C=0 LET D=1 DO WHILE D>0 LET X=RND52(C) IF X<5 THEN LET A1=A1+1 IF X>4 AND X<9 THEN LET A2=A2+1 IF X>48 AND X<53 THEN LET A13=A13+1 IF (A1-4)*(A2-4)=0 THEN LET D=0 END IF IF A13=1 THEN IF (A1-2)*(A1-3)=0 THEN LET D=0 END IF ELSEIF A13>1 THEN IF (A1-2)*(A1-3)*(A2-3)=0 THEN LET D=0 END IF END IF LET C=C+1 LOOP LET T(i)=C MAT FL=ZER NEXT i LET f=0 FOR i=1 TO M LET f=f+T(i) NEXT i FOR i=1 TO M FOR j=1 TO 52 IF T(i)=j THEN LET DOSU(j)=DOSU(j)+1 END IF NEXT j NEXT i FOR n=1 TO 52 LET U=0 FOR i=1 TO n LET U=U+DOSU(i) NEXT i LET RUISEKI(n)=U NEXT n FOR i=1 TO 52 PRINT USING "##":i; PRINT "回目: "; PRINT USING "###": DOSU(i); PRINT "回 "; PRINT USING "##.#":ROUND(100*DOSU(i)/M,2); PRINT "% 累積 "; PRINT USING "###.#":ROUND(100*RUISEKI(i)/M,2); PRINT "%" NEXT i PRINT PRINT "平均 ";ROUND(f/M,2);"回" PRINT END