Code de simulation du problème des prisonniers
Code:
from random import shuffle
n_prisoners = 100
max_attempts = 50
def simulate_one_run() -> bool:
boxes = list(range(100))
shuffle(boxes)
for p in range(n_prisoners):
key = boxes[p]
n_opened = 1
while key != p and n_opened < max_attempts:
key = boxes[key]
n_opened += 1
if p != key:
return False
return True
n_run = 10000
n_successes = 0
for _ in range(n_run):
is_success = simulate_one_run()
if is_success:
n_successes += 1
print(f"p(succès) = {n_successes / n_run}")
n_prisoners = 100
max_attempts = 50
def simulate_one_run() -> bool:
boxes = list(range(100))
shuffle(boxes)
for p in range(n_prisoners):
key = boxes[p]
n_opened = 1
while key != p and n_opened < max_attempts:
key = boxes[key]
n_opened += 1
if p != key:
return False
return True
n_run = 10000
n_successes = 0
for _ in range(n_run):
is_success = simulate_one_run()
if is_success:
n_successes += 1
print(f"p(succès) = {n_successes / n_run}")
Last modified: Friday, 21 October 2022, 16:06