Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
29
Task/Monty-Hall-problem/OCaml/monty-hall-problem.ocaml
Normal file
29
Task/Monty-Hall-problem/OCaml/monty-hall-problem.ocaml
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
let trials = 10000
|
||||
|
||||
type door = Car | Goat
|
||||
|
||||
let play switch =
|
||||
let n = Random.int 3 in
|
||||
let d1 = [|Car; Goat; Goat|].(n) in
|
||||
if not switch then d1
|
||||
else match d1 with
|
||||
Car -> Goat
|
||||
| Goat -> Car
|
||||
|
||||
let cars n switch =
|
||||
let total = ref 0 in
|
||||
for i = 1 to n do
|
||||
let prize = play switch in
|
||||
if prize = Car then
|
||||
incr total
|
||||
done;
|
||||
!total
|
||||
|
||||
let () =
|
||||
let switch = cars trials true
|
||||
and stay = cars trials false in
|
||||
let msg strat n =
|
||||
Printf.printf "The %s strategy succeeds %f%% of the time.\n"
|
||||
strat (100. *. (float n /. float trials)) in
|
||||
msg "switch" switch;
|
||||
msg "stay" stay
|
||||
Loading…
Add table
Add a link
Reference in a new issue