September 2017 Update
This commit is contained in:
parent
bba7bfd280
commit
ba8067c3b7
14570 changed files with 153136 additions and 63871 deletions
26
Task/Monty-Hall-problem/Rust/monty-hall-problem.rust
Normal file
26
Task/Monty-Hall-problem/Rust/monty-hall-problem.rust
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
extern crate rand;
|
||||
use rand::Rng;
|
||||
|
||||
#[derive(Clone, Copy, PartialEq)]
|
||||
enum Prize {Goat , Car}
|
||||
|
||||
const GAMES: usize = 3_000_000;
|
||||
fn main() {
|
||||
let mut switch_wins = 0;
|
||||
let mut rng = rand::thread_rng();
|
||||
|
||||
for _ in 0..GAMES {
|
||||
let mut doors = [Prize::Goat; 3];
|
||||
*rng.choose_mut(&mut doors).unwrap() = Prize::Car;
|
||||
|
||||
// You only lose by switching if you pick the car the first time
|
||||
if rng.choose(&doors).unwrap() != &Prize::Car {
|
||||
switch_wins += 1;
|
||||
}
|
||||
}
|
||||
println!("I played the game {total} times and won {wins} times ({percent}%).",
|
||||
total = GAMES,
|
||||
wins = switch_wins,
|
||||
percent = switch_wins as f64 / GAMES as f64 * 100.0
|
||||
);
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue