12.4 Kalkuli proksimumon de π

Efektive, konata rezulto de entjerteorio asertas ke la probablo ke du entjeroj hazarde elektitaj estas primoj inter si estas 6∕π2 ≈ 0,6079. Por provi konstati tiun rezulton, jen tio kion ni faros:

 por test
 # Komencu la variablon nombrilo je 0
 provizu "nombrilo 0
 ripetu 1000
   [se (pgkd hazardon 1000000 hazardon 1000000) = 1 [provizu "nombrilo :nombrilo + 1]]
 skribu [frekvenco:]
 skribu :nombrilo / 1000
 fino

Rimarko: Kiel antaŭe, oni devas meti la parentezojn ĉirkaŭ pgkd hazardon 1000000 hazardon 1000000; se ne, l’ interpretilo provos evalui 1000000 = 1. Por ne skribi parentezojn, skribu tiel: se 1 = pgkd hazardon 1000000 hazardon 1000000.

Rulu la programon test.

 test
 0.609
 test
 0.626
 test
 0.597

Oni akiras valorojn proksimaj de la teoria valoro 0.6097. Rimarkindas ja ke tiu frekvenco estas valoro proksima al 6-- π2.

Se mi indikas per f la trovitan frekvencon, oni do havas: f ≈62- π.

Do π2 ≈6 -- f kaj do π ≈∘ 6-   --   f.

Mi aldonu tiun proksimumigon en mia programo; mi transformu la finon de la proceduro test:

 por test
 # Komencu la variablon nombrilo je 0
 provizu "nombrilo 0
 ripetu 1000
   [se 1 = pgkd hazardon 1000000 hazardon 1000000 [provizu "nombrilo :nombrilo + 1]]
 # Kalkulu la frekvencon
 provizu "f :nombrilo/1000
 # Skribu la valoron proksimuman al pi
 skribu frazon [proksimumigo de pi:] radikon (6/:f)
 fino
 test
 proksimumigo de pi: 3.164916190172819
 test
 proksimumigo de pi: 3.1675613357997525
 test
 proksimumigo de pi: 3.1008683647302115

Nu, mi modifu mian programon tiel ke kiam mi rulos ĝin, mi indiku la nombron de provoj deziratan. Mi intencas provi per 10000 provoj; jen tio kion mi akiras en miaj tri unuaj ruladoj:

 por test :provoj
 # Komencu la variablon nombrilo je 0
 provizu "nombrilo 0
 ripetu :provoj
   [se 1 = pgkd hazardon 1000000 hazardon 1000000 [provizu "nombrilo :nombrilo + 1]]
 # Kalkulu la frekvencon
 provizu "f :nombrilo/:provoj
 # Skribu la valoron proksimuman al pi
 skribu frazon [proksimumigo de pi:] radiko (6/:f)
 fino
 
 test 10000
 proksimumigo de pi: 3.1300987144363774
 test 10000
 proksimumigo de pi: 3.1517891481565017
 test 10000
 proksimumigo de pi: 3.1416626832299914

Ne malbone, ĉu?