RANDOMIZE PRINT PRINT "毎回1から100の数の中からランダムに1つの数を抽選したとき、" PRINT "過去に抽選した数と同じ数が出るまで抽選する回数の期待値を求める" PRINT "シミュレーション。1000回試行します。" PRINT DIM Q(101) MAT Q=ZER LET CC=0 PRINT "一例:"; FOR i=1 TO 1000 LET C=0 FOR j=1 TO 101 LET K=RND100(i) IF i=1 THEN PRINT " ";K; END IF LET C=C+1 IF Q(K)=1 THEN EXIT FOR LET Q(K)=1 NEXT j IF i=1 THEN PRINT PRINT PRINT " ";C;"番目にダブりました。" PRINT PRINT END IF LET CC=CC+C MAT Q=ZER NEXT i PRINT "平均";ROUND(CC/1000,1);"回目にダブります。" PRINT END EXTERNAL FUNCTION RND100(q) ! 1〜100を乱数で出す。 OPTION BASE 0 DIM FL(100) DO LET X=INT(RND*100)+1 LOOP UNTIL FL(X)=0 LET FL(X)=1 LET RND100=X END FUNCTION