RANDOMIZE OPTION BASE 0 DIM FL(20),P(20),R(20) FUNCTION RND20(q) ! 0〜19を乱数で出す。ただし1度出た数は出さない。 DO LET u=INT(RND*20) LOOP UNTIL FL(u)=0 LET FL(u)=1 LET RND20=u END FUNCTION PRINT PRINT "0 〜 9 までのカードが2枚ずつあります。" PRINT "この中から任意に5枚選びます。" PRINT "このとき、すべて異なる数になる確率を" PRINT "10000 回 試行することにより予想します。" PRINT PRINT LET V=10000 LET C=0 FOR i=1 TO V FOR j=1 TO 5 LET P(j)=RND20(j) LET R(j)=MOD(P(j),10) NEXT j IF i=1 THEN PRINT "1回目の試行で選ばれた5枚のカード: "; FOR k=1 TO 5 PRINT R(k); NEXT k PRINT PRINT END IF LET Z=ITCHI(R,5) IF Z=1 THEN LET C=C+1 END IF FOR k=1 TO 20 LET FL(k)=0 NEXT k NEXT i PRINT "10000 回 のシミュレーション の結果 : ";ROUND(100*C/V,2);" %" PRINT END EXTERNAL FUNCTION ITCHI(Q(),e) ! e個の数がすべて異なるなら1を返す。 LET x=1 FOR i=1 TO e FOR j=i+1 TO e LET x=x*(Q(i)-Q(j)) NEXT j NEXT i IF x=0 THEN LET ITCHI=0 ELSE LET ITCHI=1 END IF END FUNCTION