RANDOMIZE PRINT PRINT "解くことのできる8パズルの確率のシミュレーション" PRINT " 6 8 3" PRINT " 1 9 4" PRINT " 2 7 5 ( 9 は 空 を表す )" PRINT " ランダムに1000個の8パズルを作り、解くことのできる" print "ものと解くことのできないものに分けて、その数をかぞえます。" PRINT DIM FL(9),T(9) FUNCTION RND9(q) DO LET S=INT(RND*9)+1 LOOP UNTIL FL(S)=0 LET FL(S)=1 LET RND9=S END FUNCTION LET Z=0 LET X=O LET Y=0 DO WHILE Z<1000 FOR i=1 TO 9 LET T(i)=RND9(i) NEXT i LET C=0 FOR i=1 TO 9 IF T(i)=i THEN GOTO 10 END IF FOR j=i TO 9 IF T(j)=i THEN LET T(j)=T(i) LET C=C+1 END IF NEXT j 10 NEXT i IF INT(C/2)=C/2 THEN LET X=X+1 ELSE LET Y=Y+1 END IF LET Z=Z+1 MAT T=ZER MAT FL=ZER LOOP PRINT " 解くことのできる8パズルの数 :";X PRINT "解くことのできない8パズルの数 :";Y PRINT END