Algorytmy informatyka klasa 1 liceum Zadanie: Wyznacz przybliżoną wartość liczby π (pi) metodą Monte Carlo 1. Zapisz algorytm w postaci listy kroków. 2. Narysuj schemat blokowy algorytmu.
Dla pierwszej poprawnej odpowiedzi naj :)
cyfra
Korzystam z algorytmu zaczerpniętego z: http://pl.wikipedia.org/wiki/Metoda_Monte_Carlo (zmienia sposób kodowania, przykład jest w c++)
dane wejściowe: n - liczba losowań (im większa z tym większą precyzją mamy szansę wyznaczyć pi) dane wyjściowe: pi - przybliżona wartość pi zmienne pomocnicze: nk - liczba wylosowanych współrzędnych, które mieszczą się w kole (spełniają warunek: x² + y² ≤ 1 - równanie okręgu) (x, y) - współrzędne wylosowanego punktu i - indeks, którym poruszamy się po pętli
opis problemu: mamy okrąg o środku w (0, 0) i promieniu 1, oraz kwadrat na nim opisany o boku 2, zgodnie z założeniami metody: Pk - pole kwadratu Pk = 4 Po - pole koła P = π nk/n = Po/Pk π = Po = Pk*nk/n = 4*nk/n
LISTA KROKÓW: K1: start; K2: przyjmij nk := 0; K3: wczytaj liczbę losowanych punktów na zmienna n; K4: przyjmij i := 1; K5: dopóki i <= n wykonuj: K5.1: losuj współrzędną x z przedziału < - 1; 1 >; K5.2: losuj współrzędną y z przedziału < - 1; 1 >; K5.3: jeżeli zachodzi x² + y² ≤ 1 to nk := nk + 1; K5.4: i := i + 1; K6: wypisz wartość liczby pi := 4*(nk/n); K7: koniec
dane wejściowe: n - liczba losowań (im większa z tym większą precyzją mamy szansę wyznaczyć pi)
dane wyjściowe: pi - przybliżona wartość pi
zmienne pomocnicze:
nk - liczba wylosowanych współrzędnych, które mieszczą się w kole (spełniają warunek: x² + y² ≤ 1 - równanie okręgu)
(x, y) - współrzędne wylosowanego punktu
i - indeks, którym poruszamy się po pętli
opis problemu:
mamy okrąg o środku w (0, 0) i promieniu 1, oraz kwadrat na nim opisany o boku 2, zgodnie z założeniami metody:
Pk - pole kwadratu Pk = 4
Po - pole koła P = π
nk/n = Po/Pk
π = Po = Pk*nk/n = 4*nk/n
LISTA KROKÓW:
K1: start;
K2: przyjmij nk := 0;
K3: wczytaj liczbę losowanych punktów na zmienna n;
K4: przyjmij i := 1;
K5: dopóki i <= n wykonuj:
K5.1: losuj współrzędną x z przedziału < - 1; 1 >;
K5.2: losuj współrzędną y z przedziału < - 1; 1 >;
K5.3: jeżeli zachodzi x² + y² ≤ 1 to nk := nk + 1;
K5.4: i := i + 1;
K6: wypisz wartość liczby pi := 4*(nk/n);
K7: koniec
jeżeli masz pytania to pisz na pw