Фальшивая монета после серии орлов

MediumМатематика
04:00
Лучше работает на десктопе
AlgorithmsProbabilityBayes
Реальный собес27:05-32:15Dubai Tech Interview 2.m4aСтраница собеса

Есть total_coins монет. Ровно одна монета фальшивая: у нее орел с двух сторон. Все остальные монеты честные.

Монету выбрали равновероятно случайно и подбросили heads_in_row раз. Все разы выпал орел. Нужно вернуть апостериорную вероятность того, что выбрали фальшивую монету.

Чтобы избежать ошибок округления, верните вероятность несократимой дробью [numerator, denominator].

Например, для исходной задачи из собеса:

  • всего монет: 1000;
  • одна фальшивая;
  • 10 раз подряд выпал орел.

Ответ: [1024, 2023].

Сигнатура

def double_headed_coin_posterior(total_coins: int, heads_in_row: int) -> list[int]:

Примеры

Пример 1

Вход:
total_coins = 1000
heads_in_row = 10
Выход:[1024,2023]

Пример 2

Вход:
total_coins = 2
heads_in_row = 1
Выход:[2,3]

Пример 3

Вход:
total_coins = 3
heads_in_row = 1
Выход:[1,2]
Консоль
Нажмите Run или Ctrl+Enter для запуска