Monty Hall problem: Difference between revisions

added Ursala
(added Ursala)
Line 1,206:
Estimate: 4960/10000 wins for 'picking anew' strategy
Of course, this challenge could also be tackled by putting up a GUI and letting the user be the source of the randomness. But that's moving away from the letter of the challenge and takes a lot of effort anyway...
 
=={{header|Ursala}}==
 
This is the same algorithm as the Perl solution. Generate two lists
of 10000 uniformly distributed samples from {1,2,3}, count each
match as a win for the staying strategy, and count each non-match as a win
for the switching strategy.
 
<lang Ursala>
#import std
#import nat
#import flo
 
rounds = 10000
 
car_locations = arc{1,2,3}* iota rounds
initial_choices = arc{1,2,3}* iota rounds
 
staying_wins = length (filter ==) zip(car_locations,initial_choices)
switching_wins = length (filter ~=) zip(car_locations,initial_choices)
 
format = printf/'%0.2f'+ (times\100.+ div+ float~~)\rounds
 
#show+
 
main = ~&plrTS/<'stay: ','switch: '> format* <staying_wins,switching_wins>
</lang>
Output will vary slightly for each run due to randomness.
<pre>
stay: 33.95
switch: 66.05
</pre>
 
=={{header|Vedit macro language}}==
Anonymous user