Obliczanie liczby pi metodą Monte Carlo w JavaScript

Algorytm rozwiązywania równania liniowego

Schemat algorytmu obliczania liczby pi metodą Monte Carlo

<!DOCTYPE html>
<html>
<body>
<script>

var n = prompt("n:", "");
k = 0;
for(i = 1; i <= n; i++){
    x = Math.random();
    y = Math.random();
    if ((x * x + y * y) <= 1) k++;    
}
p = 4 * k / n;
alert('pi = ' + p);

</script>
</body>
</html>

 

 

 

Początek programu to struktura HTML oraz pobranie danych od użytkownika.

  • Kod: <!DOCTYPE html> ... <script>
    • Schemat: Krok 1 (START). Te znaczniki otwierają dokument i blok skryptu, co odpowiada rozpoczęciu działania programu.
  • Kod: var n = prompt("n:", "");
    • Schemat: Krok 2 (Czytaj: n). Funkcja prompt wyświetla okno dialogowe, prosząc użytkownika o podanie liczby prób n, a następnie zapisuje tę wartość w zmiennej.

Inicjalizacja zmiennych i Pętla

Przed głównymi obliczeniami program ustawia liczniki.

  • Kod: k = 0;
    • Schemat: Krok 3 (część pierwsza: k:=0). Zmienna k (liczba trafień w koło) jest zerowana.
  • Kod: for(i = 1; i <= n; i++){
    • Ta linia w języku JavaScript realizuje jednocześnie trzy elementy schematu:
      1. Krok 3 (część druga: i:=1): i = 1 ustawia licznik pętli na start.
      2. Krok 8 (Decyzja: i≤n): i <= n sprawdza, czy należy kontynuować pętlę. Jeśli prawda (T) – pętla działa; jeśli fałsz (N) – pętla się kończy.
      3. Krok 7 (i:=i+1): i++ zwiększa licznik o 1 po każdym wykonaniu pętli.

Wnętrze pętli (Symulacja Monte Carlo)

Wewnątrz pętli odbywa się właściwe losowanie i sprawdzanie warunków.

  • Kod: x = Math.random(); oraz y = Math.random();
    • Schemat: Krok 4 (x:=random, y:=random). Funkcja Math.random() losuje liczby z przedziału 0−1, ustalając współrzędne punktu.
  • Kod: if ((x * x + y * y) <= 1) k++;
    • Ta instrukcja warunkowa łączy dwa kroki:
      1. Krok 5 (Decyzja: x2+y2≤1): Sprawdzenie, czy punkt leży w kole (zgodnie z twierdzeniem Pitagorasa x2+y2≤r2, gdzie r=1).
      2. Krok 6 (k:=k+1): Instrukcja k++ wykonuje się tylko wtedy, gdy warunek jest spełniony (ścieżka "T" na schemacie).

Obliczenia końcowe i Wynik

Po zakończeniu pętli (gdy warunek z kroku 8 zwróci "Nie"), program przechodzi do podsumowania.

  • Kod: p = 4 * k / n;
    • Schemat: Krok 9 (p:=4∗k/n). Obliczenie przybliżenia liczby Pi na podstawie stosunku trafień (k) do wszystkich prób (n). Mnożymy przez 4, ponieważ badaliśmy tylko jedną ćwiartkę koła.
  • Kod: alert('pi = ' + p);
    • Schemat: Krok 10 (Pisz: p). Funkcja alert wyświetla wynik w wyskakującym oknie przeglądarki.
  • Kod: </script>
    • Schemat: Krok 11 (STOP). Zakończenie skryptu.