Wyznaczanie liczby PI, metodą Monte Carlo

0

Witam. Czy ktoś ma może przykład algorytmu blokowego do ww. obliczenia ?

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:

  1. Pętla 0..M: (M - ilość iteracji, im więcej tym większa dokładność)
    1. losuj x i y w przedziale 0..1
    2. jeśli sqrt(xx+yy)<=1 (mieści się w kole:
      TAK: dodaj 1 do zmiennej J
  2. 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

1 użytkowników online, w tym zalogowanych: 0, gości: 1