RANDOMIZE PRINT PRINT " 1 〜 10 の 10枚のカードから 1枚ずつ任意に選んでいく。" PRINT "選んだ数の合計が20以上になったら、そこでストップする。" PRINT "何枚のカードを手にすることができるかの期待値はいくらほどか?" PRINT "10000回 施行してみます。" PRINT DIM H(1000) LET D=0 LET Z=0 FOR j=1 TO 1000 DIM T(10) FOR i=1 TO 10 LET T(i)=i NEXT i CALL syafl(T,10) LET X=0 LET C=1 FOR i=1 TO 10 LET X=X+T(i) IF X=20 THEN LET Z=Z+1 IF X>19 THEN EXIT FOR LET C=C+1 NEXT i LET H(j)=C LET D=D+C IF j=1 THEN PRINT "10回目までの選んだ数の順: " IF j<11 THEN PRINT USING "##########":j; PRINT "回目:"; FOR k=1 TO 10 PRINT USING "####":T(k); NEXT k PRINT " 結果:";C;"枚 合計:";X END IF IF j=10 THEN PRINT NEXT j PRINT "期待値は";D/1000;"枚 です。" PRINT PRINT "ちょうど 20 になる確率は";Z/10;"% です。" PRINT END EXTERNAL SUB syafl(Z(),M) ! シャッフルする DIM G(M,M) FOR i=1 TO M LET G(1,i)=i NEXT i FOR i=1 TO M-1 LET H=INT(RND*(M-i+1)) LET Z(i)=G(i,H+1) FOR j=1 TO M IF j>=M-i+1 THEN LET G(i+1,j)=-1 GOTO 10 END IF IF G(i,j)