Suponha um arquivo de dados com mais de 80 milhões de zeros e zeros, gerado aleatoriamente.
A partir desse arquivo, queremos criar uma lista de números inteiros decimais aleatórios.
Este é o plano para fazer essa conversão.
- Divida os 80 milhões de dígitos em agrupamentos de 4 dígitos binários.
- Converta cada binário de 4 dígitos em decimal.
- Descarte todos os valores decimais maiores que 9.
Isso deve resultar em uma sequência de números inteiros aleatórios de 0 a 9
Aqui está a preocupação. Os 24 dígitos binários que compreendem os 6 agrupamentos de 4 dígitos binários que correspondem aos valores 10 a 15 contêm 17 dígitos e apenas 7 zeros. Esse desequilíbrio afetará a distribuição de números pares x ímpares ou comprometerá a aleatoriedade da sequência final de dígitos decimais de alguma forma?
Atualização: a partir das respostas postadas, parece que o método enumerado acima é consistente. Eu concordo com essa conclusão. No entanto, ainda não entendo por que remover mais do que o dobro de zeros da cadeia binária não influencia o resultado em menos números ímpares. Eu procuro explicações.
fonte
Respostas:
Vamos contar e ver. Pela construção do arquivo, todas as seqüências de 4 bits são igualmente prováveis. Existem 16 dessas strings. Aqui estão eles:
Seu procedimento lança as seqüências 10 a 15. Portanto, nos casos em que você realmente usa, você escolhe 0 a 9, cada um dos quais é igualmente provável, conforme desejado. E sabemos que os dígitos decimais gerados são independentes um do outro, porque cada um usa uma sequência separada de 4 bits e todos os bits são independentes. Seu procedimento constitui um tipo simples de amostragem por rejeição .
fonte
Não há viés, pois você simula alguns valores descartados e todos os valores, incluindo aqueles mantidos, são gerados com a mesma probabilidade:
O código R para o gráfico acima é
fonte