Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
37
Task/100-prisoners/PureBasic/100-prisoners.basic
Normal file
37
Task/100-prisoners/PureBasic/100-prisoners.basic
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
#PRISONERS=100
|
||||
#DRAWERS =100
|
||||
#LOOPS = 50
|
||||
#MAXPROBE = 10000
|
||||
OpenConsole()
|
||||
|
||||
Dim p1(#PRISONERS,#DRAWERS)
|
||||
Dim p2(#PRISONERS,#DRAWERS)
|
||||
Dim d(#DRAWERS)
|
||||
|
||||
For i=1 To #DRAWERS : d(i)=i : Next
|
||||
Start:
|
||||
For probe=1 To #MAXPROBE
|
||||
RandomizeArray(d(),1,100)
|
||||
c1=0 : c2=0
|
||||
For m=1 To #PRISONERS
|
||||
p2(m,1)=d(m) : If d(m)=m : p2(m,0)=1 : EndIf
|
||||
For n=1 To #LOOPS
|
||||
p1(m,n)=d(Random(100,1))
|
||||
If p1(m,n)=m : p1(m,0)=1 : EndIf
|
||||
If n>1 : p2(m,n)=d(p2(m,n-1)) : If p2(m,n)=m : p2(m,0)=1 : EndIf : EndIf
|
||||
Next n
|
||||
Next m
|
||||
|
||||
For m=1 To #PRISONERS
|
||||
If p1(m,0) : c1+1 : p1(m,0)=0 : EndIf
|
||||
If p2(m,0) : c2+1 : p2(m,0)=0 : EndIf
|
||||
Next m
|
||||
|
||||
If c1=#PRISONERS : w1+1 : EndIf
|
||||
If c2=#PRISONERS : w2+1 : EndIf
|
||||
Next probe
|
||||
Print("TRIALS: "+Str(#MAXPROBE))
|
||||
Print(" RANDOM= "+StrF(100*w1/#MAXPROBE,2)+"% STATEGY= "+StrF(100*w2/#MAXPROBE,2)+"%")
|
||||
PrintN(~"\tFIN =q.") : inp$=Input()
|
||||
w1=0 : w2=0
|
||||
If inp$<>"q" : Goto Start : EndIf
|
||||
Loading…
Add table
Add a link
Reference in a new issue