Сколько нужно завести друзей в Facebook, чтобы с вероятностью близкой к 100% каждый день в году поздравлять с днем рождения хотя бы одного друга? Интересная задача.
Более конкретная постановка: Пустой массив постепенно заполняется элементами. Каждый элемент хранит в себе числовое значение в диапазоне от 0 до 365, выбранное случайным образом.
Вопрос:
Сколько нужно добавить элементов в массив, чтобы с вероятность P каждое число от 0 до 365 содержалось в нем хотя бы один раз.
Вероятность P:
1) 25%
2) 50%
3) 75%
4) ~99%
5) 100%
Может быть, это можно красиво посчитать в Mathematica?

21 Авг 2019 в 06:13
215 +1
0
Ответы
1

Да, конечно, задачу можно решить в Mathematica с помощью симуляций Монте-Карло. Для этого можно написать следующий код:

probability[n_, p_] := Module[{count, success},
count = 0;
Do[
success = False;
Do[
If[Length[Union[RandomInteger[365, i]]] == 366,
success = True; Break[]], {j, n}];
If[success, count++], {k, 1000}];
count/1000]
nvalues = {572, 244, 153, 102, 95};
Table[probability[nvalues[[i]], i/4], {i, 1, 5}]

В этом коде мы создаем функцию probability, которая для заданного числа элементов n и вероятности p считает вероятность того, что каждое число от 0 до 365 содержится в массиве хотя бы один раз. Затем мы запускаем эту функцию для разных значений n и искомых вероятностей p.

Результат выполнения кода будет выводить вероятность для каждого значения p в таблице.

20 Апр 2024 в 13:22
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир