/* A Machine Probability Puzzle in Picat. From Cole Frederick: "A Machine Probability Puzzle - Will it ever work?" https://colefp.medium.com/a-machine-probability-puzzle-bbb46322f609 """ Here’s a simple puzzle to test your ability to think about probability. Imagine you have a machine that works on average every 2 days out of 3. What is the probability that it will work for at least 4 of the next 5 days? """ Cf my Gamble model gamble_machine_probability_puzzle.rkt This program was created by Hakan Kjellerstrand, hakank@gmail.com See also my Picat page: http://www.hakank.org/picat/ */ import ppl_distributions, ppl_utils, ppl_common_utils. import util. % import ordset. main => go. /* var : s Probabilities: 4: 0.3338000000000000 3: 0.3291000000000000 2: 0.1646000000000000 5: 0.1285000000000000 1: 0.0406000000000000 0: 0.0034000000000000 mean = 3.3348 var : p Probabilities: false: 0.5377000000000000 true: 0.4623000000000000 mean = 0.4623 */ go ?=> reset_store, run_model(10_000,$model,[show_probs_trunc,mean]), nl, nl. go => true. model() => NumDays = 5, WorkingP = 2/3, Days = bern_n(WorkingP,NumDays), S = Days.sum, P = check(S >= 4), add("s",S), add("p",P).