Witam. Czy ktoś ma może przykład algorytmu blokowego do ww. obliczenia ?
0
0
To ci na pewno pomoże:
a) http://www.eveandersson.com/pi/monte-carlo-circle
b) http://www.chem.unl.edu/zeng/joy/mclab/mcintro.html
c) http://mytinylab.com/blog/?p=159
0
Dość nieprecyzyjna metoda... 3.14 mi dopiero przy 500000 iteracjach. przy 1000000 mi się program zawiesza (zżera cały RAM), a bloczek po bloczku wykonywać nie będę:p
Algorytm:
- Pętla 0..M: (M - ilość iteracji, im więcej tym większa dokładność)
- losuj x i y w przedziale 0..1
- jeśli sqrt(xx+yy)<=1 (mieści się w kole:
TAK: dodaj 1 do zmiennej J
- Wypisz 4*M/J
0
@Razi91 - a z jakiego PRNG'a korzystasz? Bo to jest też tzw. test Π, który określa jakość PRNG'ów.
0
@winerfresh: JavaScriptowego, bo JavaBlock aktualnie używa JS do interpretowania kodu.
0
To nie wiem jak to poprawić, ja użyłem MT19937 i uzyskałem wyniki:
3.1331999999999999850786025490378960967063903808594
3.1572000000000000063948846218409016728401184082031
3.1499999999999999111821580299874767661094665527344
3.1491999999999999992894572642398998141288757324219
3.1451999999999999957367435854393988847732543945312
3.1415999999999999481303802895126864314079284667969
3.1375999999999999445776666107121855020523071289062
3.1535999999999999587885213259141892194747924804688
3.1411999999999999921840299066388979554176330566406
3.1400000000000001243449787580175325274467468261719
dla 10000 iteracji. A dla 10000000:
3.14261079999999992651282809674739837646484375
3.1418279999999998430837422347394749522209167480469
3.1415663999999998701184722449397668242454528808594
3.1415484000000000186503257282311096787452697753906
3.1420363999999998405598944373195990920066833496094
3.1405531999999998227224295987980440258979797363281
3.1411215999999999581859810859896242618560791015625
3.1413600000000001521982539998134598135948181152344
3.1423344000000001940975380421150475740432739257812
3.1415516000000001106684521801071241497993469238281