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

Dolly
Сообщений: 66
Зарегистрирован: 27 фев 2016, 00:06
Откуда: Иерусалимский университет

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

Сообщение Dolly » 05 апр 2020, 09:57

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

zykov
Сообщений: 1393
Зарегистрирован: 06 янв 2016, 17:41

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

Сообщение zykov » 05 апр 2020, 11:40

Задача чисто комбинаторная.
Мне кажется, что несколько проще сначала посчитать, что никто не получил трёх пакетов.
Тут будет только 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$$.

Аватар пользователя
Ian
Сообщений: 960
Зарегистрирован: 18 янв 2016, 19:42

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

Сообщение Ian » 05 апр 2020, 11:48

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]- все так и есть, отличное решение
Введение неразличимости каких-то вариантов может сократило бы используемые числа по величине но путало бы сильно
Последний раз редактировалось Ian 05 апр 2020, 12:10, всего редактировалось 1 раз.

zykov
Сообщений: 1393
Зарегистрирован: 06 янв 2016, 17:41

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

Сообщение zykov » 05 апр 2020, 11:57

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

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

Аватар пользователя
Ian
Сообщений: 960
Зарегистрирован: 18 янв 2016, 19:42

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

Сообщение Ian » 05 апр 2020, 12:13

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

Dolly
Сообщений: 66
Зарегистрирован: 27 фев 2016, 00:06
Откуда: Иерусалимский университет

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

Сообщение Dolly » 05 апр 2020, 12:14

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

zykov
Сообщений: 1393
Зарегистрирован: 06 янв 2016, 17:41

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

Сообщение zykov » 05 апр 2020, 12:18

Сначала один, потом второй, потом третий.

zykov
Сообщений: 1393
Зарегистрирован: 06 янв 2016, 17:41

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

Сообщение zykov » 05 апр 2020, 12:35

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

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

Аватар пользователя
Ian
Сообщений: 960
Зарегистрирован: 18 янв 2016, 19:42

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

Сообщение Ian » 05 апр 2020, 12:42

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

zykov
Сообщений: 1393
Зарегистрирован: 06 янв 2016, 17:41

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

Сообщение zykov » 05 апр 2020, 13:07

Если есть сомнения, все ли случаи учли, то я проверил методом Монтекарло на компьютере.
При $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


Вернуться в «Математика»

Кто сейчас на форуме

Количество пользователей, которые сейчас просматривают этот форум: нет зарегистрированных пользователей и 17 гостей