Uma explicação possivelmente mais simples de amostragem de rejeição aprimorada.
Estou dando essa explicação, pois espero que possa ajudar a simplificar o entendimento ou a análise de probabilidades em algumas situações.
FrankW sugere o uso de amostragem por rejeição, lançando a moeda três vezes, mantendo o resultado se estiver na faixa certa ou repetindo os três lançamentos caso contrário, até o sucesso.
Ángel sugere salvar um flip em cada tentativa, substituindo-o pela opção binária restante dos dois valores não utilizados do conjunto anterior de três.
Isso significa realmente que um pouco de informação foi produzido nos três primeiros lançamentos, que não precisou ser produzido. Mais precisamente, você deve jogar a moeda apenas duas vezes para saber se o conjunto atual de lançamentos será bem-sucedido.
Saber se o conjunto atual de flip será bem-sucedido é a única probabilidade que importa , pois a interpretação de um conjunto bem-sucedido de flip é independente de probabilidade. E isso pode ser conhecido antes que todos os lançamentos sejam concluídos para esse conjunto.
Isso pode ser conseguido de pelo menos duas maneiras, ou mais precisamente em duas interpretações diferentes dos lançamentos. Pode haver outros.
O agrupamento resulta em pares
A idéia é considerar apenas três valores (1,2), (3,4) e (5,6) representados por quaisquer três configurações de flip duplo, como TT, TH, HT. Em seguida, você pode aplicar a amostragem de rejeição com lançamentos duplos, repetindo sempre que obtiver a configuração de falha HH.
Depois de obter uma das três configurações bem-sucedidas, basta jogar a moeda mais uma vez para decidir se deve pegar o primeiro ou o segundo valor do par correspondente.
Detecção precoce de falha do flip-set
A idéia é usar uma leitura ligeiramente diferente da configuração de três flip. Se Head e Tail são interpretados como 1 e 0, uma configuração deve corresponder à interpretação binária mais uma. Ou seja, TTT (ou seja, 000) corresponde a 1, HTH (ou seja, 101) corresponde a 6, HHT (ou seja, 110) e HHH (ou seja, 111) corresponde a 7 e 8, ou qualquer coisa fora [1,6].
Então, sabemos que o flip-set está tendo sucesso ou falhando apenas com os dois primeiros flips. Se eles produzem HH, o flip set falha independentemente do último flip. Portanto, pode ser pulado.
Acho que a detecção precoce sempre pode ser usada como explicação, mas, dependendo do número de faces em seus dados simulados, a detecção de falhas pode ocorrer após um número variável de movimentos.
Por exemplo, para um dado de 10 faces, você precisa, em princípio, de um conjunto de 4 lançamentos, com 6 configurações correspondentes à falha. O truque é ter todas as configurações de falha na extremidade superior da sequência de valores binários da seguinte maneira:
TTTT 0000 1
HTTT 1000 9
HTTH 1001 10
HTHT 1001 11
HTHH 1011 12
HHTT 1100 13
HHHH 1111 16
Configurações bem-sucedidas correspondem ao intervalo [1, 10] e falhas no intervalo [11,16].
Então você falha quando os dois primeiros movimentos dão HH, ou quando os três primeiros dão HTH, sem ter que tentar os movimentos ausentes do conjunto.
Se você não falhar, basta encerrar o conjunto de lançamentos.