Skip to Content

§6. Наилучший выбор: сколько женихов пропустить

Финал главы — сказка, но с самой настоящей математикой внутри.

В некотором царстве жила-была царевна. Приехали к ней свататься добры молодцы, один другого лучше. Заходили женихи в палаты по очереди да кланялись. Беда в том, что добры молодцы были больно обидчивы: не дала царевна согласия сразу — садились на коня и уезжали восвояси, назад не вернёшь. А заранее о женихах ничего не известно, только сколько их всего приехало. Как царевне выбрать самого достойного?

По-дворовому та же история — съём хаты: смотришь варианты по одному, отказался — её тут же забрали, и сравнивать можно только с тем, что уже видел.

Модель

Пусть женихов nn, и они встают в очередь в случайном порядке — все n!n! перестановок равновероятны. Царевна видит только, кто лучше, а кто хуже среди уже прошедших. Цель — остановиться именно на самом лучшем.

Стратегия «осмотрись, потом бери»

Взять первого попавшегося — шанс всего 1/n1/n. Умнее так: пропустить первых mm женихов (просто посмотреть, какие вообще бывают), а потом взять первого, кто окажется лучше всех предыдущих. Если такой не найдётся — достанется последний. Конечно, можно упустить лучшего, если он был среди первых mm. Вопрос — какое mm выбрать.

Считаем шанс

Пусть AkA_k — событие «остановились на kk-м женихе» (k=m+1,…,nk = m+1, \dots, n). Это значит: все с номерами от m+1m+1 до k−1k-1 оказались хуже лучшего из первых mm, а kk-й — лучше всех предыдущих. Посчитав, куда может встать каждая следующая «точка» в порядке, Лагутин получает

P(Ak)=m(k−1)k.\mathbf{P}(A_k) = \frac{m}{(k-1)k}.

Пусть BB — «выбрали самого лучшего». Остановка на kk-м даёт лучшего, если kk-й ещё и абсолютный лидер, тогда P(B∩Ak)=mn(k−1)\mathbf{P}(B \cap A_k) = \dfrac{m}{n(k-1)}. Складываем по всем kk (формула полной вероятности):

Pm(B)=∑k=m+1nmn(k−1)=mn∑k=mn−11k.\mathbf{P}_m(B) = \sum_{k=m+1}^{n} \frac{m}{n(k-1)} = \frac{m}{n} \sum_{k=m}^{n-1} \frac{1}{k}.

По кирпичикам:

  • mn\tfrac{m}{n} — растёт с mm: чем больше осмотрелся, тем выше планка, тем меньше шанс схватить середнячка.
  • ∑k=mn−11k\sum_{k=m}^{n-1} \tfrac1k — падает с mm: чем больше пропустил, тем выше риск, что лучший был среди пропущенных.
  • Два эффекта тянут в разные стороны, значит есть золотая середина m∗m^*.

Ответ: пропусти примерно n/en/e

Таблица оптимальных m∗m^* и шансов pn∗p^*_n:

nn234571020501001000
mn∗m^*_n01122371837368
pn∗p^*_n0,50,50,4580,4330,4140,3990,3840,3740,3710,368

Шанс pn∗p^*_n убывает с ростом nn, но не к нулю, а к 1/e≈0,3681/e \approx 0{,}368. Почему: сумму можно зажать интегралом, ∑k=mn−11k≈ln⁡nm\sum_{k=m}^{n-1}\tfrac1k \approx \ln\tfrac{n}{m}, и тогда Pm(B)≈−mnln⁡mn\mathbf{P}_m(B) \approx -\tfrac{m}{n}\ln\tfrac{m}{n}. Функция f(x)=−xln⁡xf(x) = -x\ln x достигает максимума в точке x∗=1/ex^* = 1/e, и сам максимум равен 1/e1/e.

Вывод: пропусти примерно n/e≈37%n/e \approx 37\% женихов, потом бери первого, кто лучше всех увиденных. Даже если женихов тысяча, шанс выбрать самого лучшего — больше трети. Без всякой информации о них заранее!

Покрути виджет: двигай nn и mm, смотри, где у кривой вершина, и сравни формулу с симуляцией.

Наилучший выбор: скольких пропустить

Кривая — шанс выбрать самого лучшего при каждом m. Красная линия — твоё m = 7: шанс 38.4 % по формуле, 38.5 % в 4000 симуляциях.Оптимум (синяя): m* = 7, шанс 38.4 %. Для сравнения n/e = 7.4, а предел шанса 1/e ≈ 36,8 %.

Та же стратегия в коде:

Загрузка редактора…

Если знаешь больше

Отдельно Лагутин замечает: если про женихов известно больше — например, их «качества» это выборка из равномерного закона на [0,1][0,1], и царевна видит сами числа, а не только порядок, — то есть стратегия с шансом не меньше 0,58. Чем больше информации, тем точнее выбор. Но даже вслепую правило 1/e1/e работает железно.

Проверь себя

Тест

Какую долю женихов стоит пропустить по оптимальной стратегии при большом n?
Обновлено