28 lines
1.4 KiB
Text
28 lines
1.4 KiB
Text
0 GOTO 9
|
|
|
|
1 FOR X = 0 TO N:J(X) = X: NEXT: FOR I = 0 TO N:FOR X = 0 TO N:T = J(X):NP = INT ( RND (1) * H):J(X) = J(NP):J(NP) = T: NEXT :FOR G = 1 TO W:IF D(J(G)) = I THEN IP = IP + 1: NEXT I: RETURN
|
|
2 NEXT G:RETURN
|
|
|
|
3 FOR I = 0 TO N:NG = I: FOR G = 0 TO W:CD = D(NG):IF CD = I THEN IP = IP + 1: NEXT I: RETURN
|
|
4 NG = CD:IF CD = I THEN STOP
|
|
5 NEXT G: RETURN
|
|
|
|
9 H=100:N=H-1:DIM D(99),J(99):FOR I = 0 TO N:D(I) = I: NEXT:W=INT(H/2)-1:M$=CHR$(13):M$(1)="RANDOM GUESSING":M$(2)="CHAINED NUMBER PICKING"
|
|
|
|
1000 FOR Q = 0 TO 1 STEP 0 : HOME : PRINT "100 PRISONERS"M$: INPUT "HOW MANY TRIALS FOR EACH METHOD? "; TT
|
|
1010 VTAB 2:CALL-958:PRINT M$"RESULTS:"M$
|
|
1020 FOR M = 1 TO 2: SU(M) = 0:FA(M) = 0
|
|
1030 FOR TN = 1 TO TT
|
|
1040 VTAB 4:PRINT M$ " OUT OF " TT " TRIALS, THE RESULTS ARE"M$" AS FOLLOWS...";
|
|
1050 IP = 0: X = RND ( - TI): FOR I = 0 TO N:R = INT ( RND (1) * N):T = D(I):D(I) = D(R):D(R) = T: NEXT
|
|
1060 ON M GOSUB 1,3 : SU(M) = SU(M) + (IP = H):FA(M) = FA(M) + (IP < H)
|
|
1070 FOR Z = 1 TO 2
|
|
1071 PRINT M$M$Z". "M$(Z)":"M$
|
|
1073 PRINT " "SU(Z)" SUCCESSES"TAB(21)
|
|
1074 PRINT " "FA(Z)" FAILURES"M$
|
|
1075 PRINT " "(SU(Z) / TT) * 100"% SUCCESS RATE.";:CALL-868
|
|
1090 NEXT Z,TN,M
|
|
|
|
1100 PRINT M$M$"AGAIN?"
|
|
1110 GET K$
|
|
1120 Q = K$ <> "Y" AND K$ <> CHR$(ASC("Y") + 32) : NEXT Q
|