Ao longo da história desenvolvemos vários métodos para produzir resultados aleatórios, ou seja, imprevisíveis: dados, moedas, roletas e muitos outros. Os jogos de azar (ou seja, de acaso) não existiriam sem isso. Em outros jogos, como as cartas, embora as regras sejam totalmente determinísticas, ainda há um elemento crucial de aleatoriedade –o estado inicial do baralho– que é realizado embaralhando as cartas.
Hoje em dia, há muitas outras aplicações práticas para valores aleatórios e, por isso, é importante que possamos produzi-los de forma rápida e fácil por meio de computadores. É aí que as coisas se complicam, porque computadores não jogam dados nem lançam moedas. Tudo que eles fazem é executar uma sequência de instruções predeterminadas, onde não há espaço para o aleatório. A saída para essa dificuldade tem sido trabalhar com números pseudoaleatórios, que parecem aleatórios, mas não são realmente.
Nos anos 1980, quando os computadores pessoais se tornaram realidade (tudo que ganhei dando aula particular eu gastei na compra de um Apple IIe, um sonho de consumo!), todo mundo que tinha um programava na linguagem Microsoft Basic. Ela vinha com uma função RND que gerava números aleatórios. Supostamente.
O que ela fazia de fato era produzir uma sequência de números x1, x2, x3, … usando a fórmula xn+1 = resto da divisão de (1140671485 vezes xn + 12820163) por 16777216. Para começar o cálculo é necessário escolher o valor da “semente” x0, a partir da qual os números da sequência são obtidos sucessivamente por meio dessa fórmula. Nas primeiras versões do Basic, a semente era sempre x0 = 0, mas isso tinha um efeito embaraçoso: RND produzia sempre exatamente a mesma sequência de números! Na primeira vez, podia até surpreender, mas a partir daí a previsibilidade já era.
Para remediar isso, versões posteriores do Basic tinham um comando RANDOMIZE, que mudava a semente com base na hora marcada no relógio do computador. Linguagens mais avançadas foram além, usando outros parâmetros do hardware (como o movimento do mouse), ou até fenômenos físicos externos ao computador, para introduzir mais imprevisibilidade no cálculo. Os resultados são suficientemente bons para a maioria das aplicações, mas não deixam de ser trapaça: computadores tradicionais, baseados nas leis da física clássica, não podem gerar números genuinamente aleatórios.
A revolução da física no início do século 20 mudou radicalmente as perspectivas nesta área. Na mecânica quântica, as medições experimentais não são predeterminadas. Sempre que um fóton é enviado na direção de uma barreira com duas fendas idênticas, a chance de que passe por cada uma delas é de 50%, exatamente como se o fóton tirasse cara ou coroa. Analogamente, sempre que medimos o spin de um elétron o resultado tanto pode ser +1/2 como –1/2, outra vez com probabilidades iguais.
Albert Einstein protestava que “Deus não joga aos dados”, mas décadas de experimentos cada vez mais sofisticados comprovaram que é exatamente assim que a natureza se comporta no nível quântico: o comportamento das partículas subatômicas é, em grande medida, imprevisível. Ora isso abre a porta para computadores capazes de produzirem números genuinamente aleatórios.
A conclusão será na semana que vem.
LINK PRESENTE: Gostou deste texto? Assinante pode liberar sete acessos gratuitos de qualquer link por dia. Basta clicar no F azul abaixo.
noticia por : UOL
