В одной из головоломок в моей старой книге определена игра, в которой два игрока выбирают последовательности бросков монет, которые, по их мнению, появятся первыми, когда монета неоднократно подбрасывается. (Это были странные и четные броски кубиков, но эта маленькая деталь не имеет значения с точки зрения эквивалентности задач.)
Следует отметить, что если игрок 1 выбирает, TTT
а игрок 2 выбирает HTT
, то у игрока 2 есть шанс выиграть игру 7/8, поскольку единственный путь TTT
может быть достигнут раньше HTT
, если все первые три броска - это хвосты.
Ваша задача - создать программу или функцию, которая будет определять вероятность того, что одна из двух выбранных последовательностей будет первой. Ваша программа будет принимать две строки ввода (или две строки в качестве аргументов), каждая из которых представляет последовательность длиной 10 или менее:
HTT
TTT
И выведите вероятность того, что первый игрок выиграет, в дробной или десятичной форме:
7/8
0.875
Самый короткий код для этого на любом языке выигрывает.