Monty Hall problem: Difference between revisions

Added zig submission for this task
m (→‎{{header|ANSI BASIC}}: Set line numbers.)
(Added zig submission for this task)
Line 5,345:
end
</syntaxhighlight>
 
=={{header|Zig}}==
<syntaxhighlight lang="zig">const std = @import("std");
 
const number_of_simulations: u32 = 10_000_000;
 
pub fn main() !void {
var stick_wins: u32 = 0;
var switch_wins: u32 = 0;
var doors = [3]bool{ true, false, false };
 
var t = std.rand.DefaultPrng.init(42);
const r = t.random();
 
var guess: u8 = undefined;
var door_shown: u8 = undefined;
 
for (0..number_of_simulations) |_| {
std.rand.Random.shuffle(r, bool, &doors);
guess = r.intRangeAtMost(u8, 0, 2);
door_shown = r.intRangeAtMost(u8, 0, 2);
while (!doors[door_shown] and door_shown != guess) door_shown = r.intRangeAtMost(u8, 0, 2);
if (doors[guess]) {
stick_wins += 1;
} else {
switch_wins += 1;
}
}
 
std.debug.print("After {} simulations:\nStick wins: {}\nSwitch wins: {}\n", .{ number_of_simulations, stick_wins, switch_wins });
}</syntaxhighlight>
 
 
2

edits