Em um quebra-cabeça em um livro antigo meu, é definido um jogo no qual dois jogadores escolhem sequências de lançamentos de moedas que eles acreditam que aparecerão primeiro quando uma moeda for lançada repetidamente. (Na verdade, eram dados ímpares e pares, mas esse pequeno detalhe não importa em termos de equivalência de problemas.)
Note-se que se o jogador 1 escolhe TTT
e o jogador 2 escolhe HTT
, esse jogador 2 tem 7/8 de chance de ganhar o jogo, pois a única maneira que TTT
pode surgir antes HTT
é se os três primeiros flips forem coroa.
Seu trabalho é criar um programa ou função que deduza a probabilidade de que uma das duas seqüências escolhidas chegue primeiro. Seu programa terá duas linhas de entrada (ou duas seqüências de caracteres como argumentos), cada uma representando uma sequência de 10 ou menos de comprimento:
HTT
TTT
E produza a probabilidade de o primeiro jogador vencer, na forma de fração ou decimal:
7/8
0.875
O código mais curto para fazer isso em qualquer idioma vence.