Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
49
Task/100-prisoners/MiniScript/100-prisoners.mini
Normal file
49
Task/100-prisoners/MiniScript/100-prisoners.mini
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
playRandom = function(n)
|
||||
// using 0-99 instead of 1-100
|
||||
pardoned = 0
|
||||
numInDrawer = range(99)
|
||||
choiceOrder = range(99)
|
||||
for round in range(1, n)
|
||||
numInDrawer.shuffle
|
||||
choiceOrder.shuffle
|
||||
for prisoner in range(99)
|
||||
found = false
|
||||
for card in choiceOrder[:50]
|
||||
if card == prisoner then
|
||||
found = true
|
||||
break
|
||||
end if
|
||||
end for
|
||||
if not found then break
|
||||
end for
|
||||
if found then pardoned = pardoned + 1
|
||||
end for
|
||||
return pardoned / n * 100
|
||||
end function
|
||||
|
||||
playOptimal = function(n)
|
||||
// using 0-99 instead of 1-100
|
||||
pardoned = 0
|
||||
numInDrawer = range(99)
|
||||
for round in range(1, n)
|
||||
numInDrawer.shuffle
|
||||
for prisoner in range(99)
|
||||
found = false
|
||||
drawer = prisoner
|
||||
for i in range(1,50)
|
||||
card = numInDrawer[drawer]
|
||||
if card == prisoner then
|
||||
found = true
|
||||
break
|
||||
end if
|
||||
drawer = card
|
||||
end for
|
||||
if not found then break
|
||||
end for
|
||||
if found then pardoned = pardoned + 1
|
||||
end for
|
||||
return pardoned / n * 100
|
||||
end function
|
||||
|
||||
print "Random: " + playRandom(10000) + "%"
|
||||
print "Optimal: " + playOptimal(10000) + "%"
|
||||
Loading…
Add table
Add a link
Reference in a new issue