A FÓRMULA DO CAOS - CAPÍTULO II

Computadores são dispositivos determinísticos. Isto quer dizer que, a princípio, ele é incapaz de gerar eventos genuinamente randômicos. Mas muitos que agora me lêem já de divertiram com jogos de computador, não é verdade? Como é que ele embaralha as cartas dos jogos de paciência, com o qual muitos já perdemos tempos valiosos (ou tediosos) de nossas vidas? Como eu consigo jogar pôquer contra a máquina? E aquelas naves alienígenas que surgem das posições mais imprevisíveis na tela do computador para tentar nos atacar? Parecem bem caóticos, não é? O fato real é que não são, mas conseguem nos enganar muito bem! Tais sequências "caóticas" são geradas por algum dos algoritmos de uma classe conhecida como Geradores Pseudo-Randômicos. Podemos nos ater à etimologia da palavra "pseudo" sem medo de errar: a aleatoriedade destas sequências é mesmo falsa! Trata-se de uma fórmula matemática bem precisa que é capaz de nos iludir ao ser calculada pela máquina.

Grande maioria destes algoritmos baseia-se em fórmulas relativamente simples. Você fornece um número para a fórmula, e ela calcula um segundo número diferente do primeiro. Para gerar uma sequência, você aplica de novo a fórmula a este segundo número e gera um terceiro. Aplica o terceiro, e gera o quarto. Fazendo isto indefinidamente você obtém uma sequência de números. O quão aleatório esta sequência vai parecer depende unicamente da qualidade da fórmula que for utilizada.

Quando implementamos isto num computador, nunca escapamos da necessidade de escolher um número inicial. Mas computadores facilmente resolvem este incômodo de perguntar um número para o usuário utilizando alguma combinação de data e hora, incluindo segundos, milisegundos e até nanosegundos atuais como o número inicial da sequência. Uma vantagem adicional deste método é que o número inicial nunca vai se repetir, pelo menos não durante o tempo de vida normal de seu usuário: felizmente o tempo está sempre avançando, não existe risco dele voltar para trás e começar a "repetir" uma sequência aleatória que ele já gerou no passado. Seria algo inaceitável. Mas às vezes acontece, só que normalmente o relógio interno do computador apresenta algum defeito nestes casos.

Em computação, este número inicial costuma ser chamado de "semente" da sequência pseudo-randômica. No campo das simulações existe uma vantagem enorme no fato de existir esta semente: um experimento aleatório pode ser "repetido", e poder repetir um experimento é um dos grandes pilares em que se apoia a ciência desde sua origem. Sempre posso reconstruir uma sequência pseudo-randômica de, digamos, um bilhão de números sem precisar armazenar estes bilhões de números na ordem em que eles apareceram, basta eu armazenar a "semente" da sequência. Uma economia de espaço considerável!

Eu estudei a fundo estes geradores pseudo-randômicos. Minha tese de doutorado foi um método capaz de, sem conhecer a priori o algoritmo pseudo-randômico escolhido para gerar uma sequência, conseguir determiná-lo simplesmente analisando a sequência que ele gerava. Consegui algo genérico o bastante a ponto de conseguir determinar os algoritmos de grande parte dos geradores pseudo-randômicos conhecidos na época. Mas até o momento final de apresentar minha tese ainda não havia coberto todos eles, apenas uns 95%. Foi mais que o suficiente para eu conseguir meu título, mas é óbvio que não me contentei em parar neste ponto: estes 5% restantes me torturavam dia após dia!

Continuei aprimorando meu algoritmo, mesmo sem sentir muito incentivo por parte do meio acadêmico. Uns 3 ou quatro anos depois consegui enfim cobrir todos os geradores pseudo-randômicos existentes, pelo menos os divulgados publicamente na rede mundial. Mas ainda não estava satisfeito com isto...