Страница 1 из 1

Волонтёр разносит продовольствие

Добавлено: 05 апр 2020, 09:57
Dolly
Здраствуйте.
Вот задача на злобу дня, с виду простая, но не получается у меня учесть все возможности.
Волонтёр должен разнести продуктовые заказы 10 пенсионерам, сидящим на карантине. У волонтёра [math] пакетов - [math] пакетов гречки, [math] пакетов риса и [math] пакетов пшена. В каждый заказ входит [math] пакета. Волонтёр комплектует заказы случайным образом. Какова вероятность, что кто-то из пенсионеров получит все [math] пакета с гречкой?
Если бы волонтёр случайно отбирал только один заказ, то тут легко подсчитать вероятность того, что в нём будет только гречка. Но смущает, что такие заказы из гречки могут получить и [math], и [math], и даже [math] пенсионера. Ведь составляется не один заказ, а все [math] сразу. Не могу сообразить, как это учесть.

Волонтёр разносит продовольствие

Добавлено: 05 апр 2020, 11:40
zykov
Задача чисто комбинаторная.
Мне кажется, что несколько проще сначала посчитать, что никто не получил трёх пакетов.
Тут будет только 5 случаев: только двое получили 2 пакета (остальные по одному), только трое (шестеро из семи по 1), четверо, пятеро или шестеро.
Всего перестановок пакетов будет $30!$.
Если двое получили по два пакета, то количество вариантов $C_{10}^2 \; 12! \; 18! \; 3^{10}$.
Если трое получили по два пакета, то количество вариантов $C_{10}^3 \; C_{7}^1 \; 12! \; 18! \; 3^9$ (здесь $C_{7}^1$ - это количество вариантов, кто получил 0).
И т.д.
($3^n$ - это перестановки пакетов гречки в каждом комплекте по 3 пакета, $C_3^1=C_3^2=3$.)
Ответ будет $$p=1-(C_{10}^2 \; 3^{10}+C_{10}^3 \; C_{7}^1 \; 3^9+C_{10}^4 \; C_{6}^2 \; 3^8+C_{10}^5 \; C_{5}^3 \; 3^7+C_{10}^6 \; 3^6) \frac{12! \; 18!}{30!}=\frac{118756}{250705} \approx 0.473688$$.

Волонтёр разносит продовольствие

Добавлено: 05 апр 2020, 11:48
Ian
zykov писал(а):Всего перестановок пакетов будет $30!$.
Значит Вы принимаете модель"нумерованные пакеты и нумерованные места в коробках"(10 коробок, тоже нумерованных, по одной для каждого). В начале счета модель можно выбрать любую. Эта действительно обеспечивает случайное формирование заказов, значит годится.
Выделено 5 событий. очевидно непересекающихся: по числу k коробок в которых ровно 2 гречки и нет коробок где 3 гречки
Мощности каждого события.Реализацию события начинаем с выбора этих k коробок из 10 [math]
Тогда оставшиеся 10-k разделятся на 12-2k, в которых одна гречка, и (10-k-12+2k)=k-2 , в которых 0 этой гречки.
Коробки, где 2 или 1, зафиксируем места из 3-х на которых гречка (3 варианта)Всего таких коробок k+12-2k=12-k
Теперь фиксированы среди 30 мест в коробках те 18 мест в которых не гречка и 12 в которых гречка
И все зависит только от перестановок 12 гречек и 18 негречек.
[math]- все так и есть, отличное решение
Введение неразличимости каких-то вариантов может сократило бы используемые числа по величине но путало бы сильно

Волонтёр разносит продовольствие

Добавлено: 05 апр 2020, 11:57
zykov
Да, утверждение "комплектует заказы случайным образом" неоднозначно.
В моем случае это значит, что из 30 пакетов (или сколько осталось) он выбирает случайно по одному пакету.
Я выбрал эту интерпретацию, как наиболее простую (в соответствии с принципом бритвы Оккама).

Например, другая возможная интерпретация: при наборе 3 пакетов для каждого из них он случайно выбирает, будет ли это гречка, рис или пшено (при условии, что они ещё остались).
Тогда вероятность будет другой.

Волонтёр разносит продовольствие

Добавлено: 05 апр 2020, 12:13
Ian
Я понял так что 30 пакетов как то расположилось на транспортерной ленте , откуда 30!, а все коробки наполняются упаковщицей ближайшим пакетом каждая строго справа налево как у них принято в письме)

Волонтёр разносит продовольствие

Добавлено: 05 апр 2020, 12:14
Dolly
zykov писал(а):Source of the post В моем случае это значит, что из 30 пакетов (или сколько осталось) он выбирает случайно по одному
Почему по одному? Случайное формирование заказов означает именно то, что Вы сделали, то есть из [math] пакетов случайным образом выбирается [math].
Но я пока не врубилась в Ваше решение. Буду вникать. В любом случае спасибо за отклик.

Волонтёр разносит продовольствие

Добавлено: 05 апр 2020, 12:18
zykov
Сначала один, потом второй, потом третий.

Волонтёр разносит продовольствие

Добавлено: 05 апр 2020, 12:35
zykov
Ian писал(а):Source of the post Я понял так что 30 пакетов как то расположилось на транспортерной ленте , откуда 30!,

Берем случайную перестановку 30 пакетов (отсюда $30!$).
Первый человек получает пакеты номер 1, 2 и 3.
Второй человек получает пакеты 4, 5 и 6.
И т.д..

Волонтёр разносит продовольствие

Добавлено: 05 апр 2020, 12:42
Ian
"Откуда" было не вопросом, а утверждением (Вашим), извините за неоднозначность

Волонтёр разносит продовольствие

Добавлено: 05 апр 2020, 13:07
zykov
Если есть сомнения, все ли случаи учли, то я проверил методом Монтекарло на компьютере.
При $10^8$ итерациях сошлось 4 десятичных знака.
Matlab/Octave код:

Код: Выбрать все

nn=100000000;s=0;for n=1:nn; s=s+(sum(sum(reshape(randperm(30)<13,3,10))>2)>0); end;s/nn