nš2
ISSN 0870-7669 Fevereiro
1987
Folha Informativa
do Projecto "Computação no Ensino da Matemática"
QUESTÕES & RESPOSTAS
Nesta Secção o "nonius" tentará responder a todo o tipo de questões relacionados com a utilização dos computadores que qualquer interessado lhe envie.
P - O que é e para que serve um gerador de números aleatórios?
J.S.
R - Conforme o nome indica, um gerador de números aleatórios é uma função (no caso que nos interessa, instalada num computador) que quando solicitada produz um numero "ao acaso". A maior parte dos computadores possui uma função deste género, embora a concepção e as características possam ser diferentes. Os usos possíveis são os mais variados. Nos exemplos que vamos ver, usaremos o gerador de números aleatórios do Spectrum, que produz números no intervalo [0,1[ em resposta, ao comando RND (da palavra inglesa random).
1) Suponhamos que pretendemos telefonar (por exemplo para uma sondagem) a 500 pessoas escolhidas ao acaso na região de Coimbra, onde há cerca de.49000 assinantes.
Como referido atrás, uma instrução do tipo PRINT RND, ou LET X=RND: PRINT X, no Spectrum produz um número ao acaso em [0, 1 [. Mas é fácil produzir números noutros intervalos. Para obter um numero no intervalo [a,b[ usamos a+(b-a)*RND. E se pretendemos apenas números inteiros entre a e b, inclusive, usamos INT[a+(b-a+l)*RND]. Para obter então 500 números ao acaso entre 1 e 49000 usaríamos 500 vezes o comando. PRINT INT(1+49000*RNd), mas tendo o cuidado de não considerar números repetidos quando apareçam.
2) Suponhamos que pretendemos calcular
Por um teorema clássico de Tschebyschev (v. A. Ostrowski, Lições de Cálculo Diferencial e Integral vol. III, F. Gulbenkian, Lisboa 1971), sabe-se que a função
não é elementarmente primitivável, e temos portanto de utilizar métodos de cálculo aproximado. Podemos calcular aquele integral desenvolvendo a função em série de MacLaurin, ou podemos usar um dos vários processos de integrarão numérica. Mas é interessante notar que o problema admite uma abordagem probabilística, através do chamado "método de Monte Carlo". A ideia é a seguinte: Aquele integral é igual à área de uma certa região S do plano. Considere-se uma outra região do plano, de área conhecida A, e que contenha S (por exemplo, o rectângulo [0,1/2]x[0,2]). Agora gerem-se n pontos ao acaso dentro desta segunda região e suponhamos que, desses n, m caíram dentro de S. É intuitivo que Am/n é uma aproximação da área desejada, e que essa aproximação será tanto melhor quanto maior for n. Experimente-se o seguinte programa:
10 LET m=0: LET n=O
20 LET x=.5*RND: LET Y=2*RND
30 LET n=n+1
40 IF y*y<l+x*x*x THEN LET m=m+1
50 PRINT AT 10,5;"Area=";m/n
60 GO TO 20
Usado desta forma simples, o método requer muitos milhares de pontos para se chegar a uma precisão razoável (digamos, três decimais exactas). Mas existem adaptações e modificações dele que o tornam muito útil, em problemas deste tipo e noutros (v. p. ex. I. Sobol, O método de Monte Carlo , Mir 1983).
De um modo geral, uma função do género RND é muito útil em todas as situações que requeiram a simulação de factores aleatórios. E, claro, também em jogos (dados, cartas, etc.) ela desempenha um papel importante.
Ao leitor interessado recomenda-se a leitura do Capítulo 11 do manual do Spectrum, onde se descrevem os raciocínios matemáticos que estão na base do funcionamento de gerador de números aleatórios deste computador, bem como vários pormenores sobre a sua utilização.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
[ Início do Número 2] [ Menu Principal ]