Next: Complicando um pouco mais:
Up: Atividade com números primos
Previous: Calcular MDC em Logo
Contents
Com efeito, um resultado conhecido de teoria dos números mostra que a probabilidade de dois números tomados ao acaso sejam primos entre si é de
. Para testar a veradicidade desse resultado faremos:
- Tomar dois números ao acaso entre 0 e 1.000.000.
- Calcular seu MDC
- Se o MDC for 1, acrescentar "1" a variável contar.
- Repetir o processo 1000 vezes
- A freqüência dos pares de números primos entre si obter-se-á dividindo a variável contar por 1000 (o número de tentativas).
aprenda testar
# Iniciar a variável "contar" com valor 0
atr "contar 0
repita 1000 [
se (MDC sorteie 1000000 sorteie 1000000)=1 [atr "contar :contar+1]
]
mostre [freqüência:]
mostre :contar/1000
fim
Nota: De novo, devemos colocar MDC sorteie 1000000 sorteie 1000000 entre parênteses para que o xLogo não se confunfa tentando interpretar como 1 000 000 = 1. Para evitar esse problema, escreva: se 1=MDC sorteie 1000000 sorteie 1000000
Coloque a rodar o procedimento testar.
testar
0.609
testar
0.626
testar
0.597
Obtêm-se valores próximos do valor teórico de 0,6097. É notável que esta freqüência é um valor aproximado de
.
Seja
a freqüência encontrada, então:
Então
e então
.
Apresso-me a acrescentar esta aproximação no meu procedimento, transformo-a no procedimento testar:
aprenda testar
# Iniciar a variável "contar" com valor 0
atr "contar 0
repita 1000 [
se 1=MDC sorteie 1000000 sorteie 1000000 [atr "contar :contar+1]
]
# Calcular a freqüência
atr "f :contar/1000
# Encontrar o valor aproximado de pi
mostre sentença [aproximação de pi:] raizq (6/:f)
fim
testar
aproximação de pi: 3.164916190172819
testar
aproximação de pi: 3.1675613357997525
testar
aproximação de pi: 3.1008683647302115
Bom, altero o meu programa de tal forma que quando rodá-lo, informo o número de tentativas desejados. Tenho a idéia de testar com 10000 tentativas. Eis que obtenho nas minhas três primeiras tentativas:
aprenda testar :tentativas
# Para iniciar a variável contar com valor 0
atr "contar 0
repita :tentativas [
se 1=MDC sorteie 1000000 sorteie 1000000 [atr "contar :contar+1]
]
# Para calcular a freqüência
atr "f :contar/:tentativas
# Encontrar o valor aproximado de pi
mostre sentença [aproximação de pi:] raizq (6/:f)
fim
testar 10000
aproximação de pi: 3.1300987144363774
testar 10000
aproximação de pi: 3.1517891481565017
testar 10000
aproximação de pi: 3.1416626832299914
Nada mal, não?
Next: Complicando um pouco mais:
Up: Atividade com números primos
Previous: Calcular MDC em Logo
Contents
alex
2006-06-18