Ir para o conteúdo

O que é aleatoriedade e por que computadores precisam de ajuda

Publicado em

Aleatório quer dizer que o próximo valor não pode ser previsto a partir dos anteriores. Jogar um dado honesto é aleatório; contar de um em um não é.

Computadores são máquinas previsíveis: dadas as mesmas instruções, fazem a mesma coisa. Por isso, quase tudo o que chamamos de número aleatório num programa é, na verdade, pseudoaleatório. Uma fórmula transforma um valor inicial numa sequência que parece aleatória, mas é inteiramente determinada por esse valor inicial.

Esse valor inicial é a semente. Se ela for previsível, como a hora do relógio, a sequência inteira também é. Por isso a qualidade da semente importa mais do que a fórmula. Sistemas operacionais coletam ruído do hardware, como variações de tempo e eventos de dispositivos, para gerar sementes imprevisíveis. É dessa fonte que vem a semente de 32 bytes do nosso sorteio.

Isso não é uma fraqueza, é uma vantagem. Com uma semente imprevisível e um método conhecido, o resultado é aleatório para quem não conhece a semente e perfeitamente reproduzível para quem a conhece. Essa combinação é o que permite conferir um sorteio depois.

Para o dia a dia, pense assim: aleatório é o que ninguém consegue adivinhar antes; verificável é o que qualquer um consegue refazer depois. Um bom sorteio precisa dos dois.

Para ver a ideia em ação, sorteie alguns números e abra a verificação.

O que é aleatoriedade e por que computadores precisam de ajuda