|
||||||||
PORTFOLIO |
||||||||
| TEXTOS |
O acaso no computador Ronaldo Entler, 1997
Mas o acaso pode ser simulado através de uma operação complexa, perfeitamente determinada - como todas as ações do computador - mas que utiliza uma lógica não podemos acompanhar. Para simular um sorteio, o computador parte de um número qualquer chamado de semente, inserindo-o numa série de operações matemáticas. O número resultante poderá cumprir bem o papel de um número tirado ao acaso pelo simples fato de não ser previamente conhecido, isto é, de ser imprevisível. Se o que se quer é um conjunto de números, basta instruir o computador para que tome o resultado como uma nova semente, e assim sucessivamente, quantas vezes for necessário. Chamamos esses números de aleatórios ou, no jargão computacional, randômicos. Está claro que esses números correspondem apenas a uma representação do acaso, pois existe uma rigorosa relação de causa e efeito atuando nesse processo: um mesmo gerador de números randômicos, sempre que partir de uma mesma semente, oferecerá os mesmos resultados. Por isso, o mais correto seria dizer "pseudo-aleatório" ou "pseudo-randômico" para se referir a um número resultante dessa operação. Para restringir a probabilidade de repetição de um resultado, basta tomar uma semente diferente a cada vez que o cálculo é inicializado. Uma forma eficiente de fazer isso é solicitar ao computador que adote como semente números variáveis extraídos do sistema, como hora, minuto e segundo. Temos vários exemplos de geradores de números aleatórios. O primeiro deles foi desenvolvido por John von Neumann e N. Metropolis, em 1946, constituindo-se das seguintes etapas: 1) escolhe-se uma semente de quatro algarismos (Ex.: 1234) Operações desse tipo são realizadas pelo computador através de uma sequência de instruções que chamamos de algoritimo. Trazemos a seguir o exemplo simplificado passo-a-passo de um algoritmo para geração de números pseudo-randômicos (clique em executar para realizar a tarefa especificada):
Escolhendo o intervalo dos números sorteados Na prática, o algoritmo randômico utilizado hoje pelos computadores é mais complexo. Mas aqui, o que importa é entendermos que o computador é capaz de simular um sorteio através de um cálculo complexo que o usuário não pode acompanhar. Para facilitar o uso desses números numa programação qualquer, o algorítimo pode ainda padronizar os resultados, chegando sempre a um número entre 0 e 1. Isso não é difícil: na operação que exeplificamos acima, bastaria dividir o resultado por 10 ou 100 ou 1000..., tomando uma quantidade de zeros igual à quantidade de algarismos do número final. Por exemplo, se o resultado é 4582, dividimos esse número por 10000 (quatro algarismos, 1 seguido de quatro zeros), e obtemos, 0,4582. Em seguida, consideramos apenas uma casa depois da vírgula, chegando a 0,4. Depois disso, definimos o intervalo desejado. Suponhamos que eu queira simular um sorteio que pode nos dar como resultado números inteiros entre 0 e 4. Para isso, o computador deve fazer corresponder a cada um dos números esperados (0, 1, 2, 3 ou 4) um intervalo igual entre os números que resultam da operação, entre 0 e 1. Suponhamos que o computador, entre 0 e 1, só trabalhe com uma casa depois da vírgula. Assim, teríamos a seguinte correspondência: 0,0 e 0,1 = 0 Mas há uma forma matematicamente mais simples de efetuar essa correspondência, que é multiplicar o número entre 0 e 1 pela quantidade de números possíveis no sorteio que é simulado e, em seguida, considerar apenas a parte inteira do resultado (eliminando o que vem depois da vírgula, após a multiplicação): 0,0 x 5 = 0,0 -> 0 Se os números esperados fossem entre 1 e 5, em vez de 0 e 4, teríamos a mesma quantidade (5 números) mas deveríamos somar 1 ao resultado. Dessa forma, podemos instruir o computador a nos fornecer qualquer quantidade de números, dentro de qualquer intervalo, mantendo a imprevisibilidade dos resultados
|
|||||||