Sorteio único
- Entrada
- 1 rodada, sem melhor de N
- Saída esperada
- 'sim' ou 'não', 50% de chance cada lado
Um único chamado de flipOnce, sem histórico de rodadas anteriores para consultar, exatamente a mesma chance dos dois lados sempre.
sim ou não para decisões rápidas
Vencer a paralisia de decisão com um sim ou não parece bobo até você entender o mecanismo por trás: um sorteio binário justo, com opção de rodar várias vezes e ficar com o resultado que apareceu mais. Esta página explica esse sorteio, o modo melhor de N rodadas, e por que uma sequência de "sim" seguidos não muda a chance da próxima rodada.
Um único chamado de flipOnce, sem histórico de rodadas anteriores para consultar, exatamente a mesma chance dos dois lados sempre.
4 é par, então o código soma 1 antes de sortear, garantindo que nunca dê 2 a 2 e fique sem vencedor.
O total real de sorteios sempre é ímpar depois da correção, então a contagem de sim mais não nunca fecha em empate.
Sim. Cada decisão usa `crypto.getRandomValues`, o gerador de números aleatórios criptográfico do navegador, com correção de viés. A chance de sim e de não é exatamente a mesma, 50% para cada lado.
Porque o código força qualquer número par de rodadas para o próximo número ímpar somando 1. Com 4 rodadas e 50% de chance cada lado, um empate de 2 a 2 seria possível; forçando 5, sempre existe um lado com maioria.
Não. Cada sorteio é independente e o código nunca consulta o histórico das rodadas anteriores para pesar a próxima. A chance continua exatamente 50/50, mesmo depois de qualquer sequência de resultados iguais.
Sim, cada decisão sorteia um inteiro de 32 bits com crypto.getRandomValues e aplica módulo 2. Como o total de valores de 32 bits é par, esse módulo específico não introduz nenhum viés entre os dois lados possíveis.
Não. O código sempre converte o número de rodadas pedido para o próximo valor ímpar antes de sortear, então a soma de sim mais não nunca pode fechar igual, sempre existe um lado com pelo menos um voto a mais.