Коллега написал про формулу Байеса. Давно хотел написать про то, как решаю задачки по теорверу/статистике я, вот, случился подходящий случай.
У меня, знаете ли, с теорией веротности не сложилось. Нет ее у меня "на кончиках пальцев". Формальную часть понимаю хорошо, она довольно простая и даже интересная, но вот с применением в жизни никак.
Но зато я умею программировать, и знаю про метод Монте-Карло https://ru.wikipedia.org/wiki/%D0%9C%D0%B5%D1%82%D0%BE%D0%B4_%D0%9C%D0%BE%D0%BD%D1%82%D0%B5-%D0%9A%D0%B0%D1%80%D0%BB%D0%BE!
Идея очень простая - для каждой задачи мы пишем примитивный симулятор процесса, и считаем нужные нам его характеристики.
Вот как бы я решал задачу по ссылке, и ответ:
bash-3.2$ python3 ./run.pyПара советов:
91.74186586242153
bash-3.2$ cat run.py
import random
stat_ok = 0
stat_all = 0
for i in range(0, 1000000000):
ill = random.random() < 0.001
if ill:
found_ill = random.random() < 0.9
else:
found_ill = random.random() < 0.01
if found_ill:
if not ill:
stat_ok += 1
stat_all += 1
print(100.0 * stat_ok / stat_all)
* считайте не с фиксированным seed, будет сразу видно, набрали нужную точность, или нет
* пишите это на компилируемом языке, питон ну очень уж медленный, вот этот пример у меня работал секунд 30, на с++ было бы "моментально"