If you're seeing this message, it means we're having trouble loading external resources on our website.

Jeżeli jesteś za filtrem sieci web, prosimy, upewnij się, że domeny *.kastatic.org i *.kasandbox.org są odblokowane.

Główna zawartość

Rozkład normalny liczb losowych

Powiedzmy, że chcemy napisać program który generuje świat małp. Nasz program może tworzyć tysiące małp, każda z wzrostem z zakresu 200 i 300 (ponieważ to jest świat małp, które mają wzrost pomiędzy 200 a 300 pikselami).
var randomHeight = random(200, 300);
Czy to dokładnie przedstawia wysokość rzeczywistej istoty? Pomyślcie o zatłoczonym chodniku w Nowym Jorku. Wybierzcie dowolną osobę z ulicy, a może wam się wydawać, że ich wzrost jest losowy. Niemniej jednak, nie jest to ten rodzaj losowości, który generuje nam funkcja random(). Wzrost ludzi nie jest rozłożony równomiernie: istnieje znacznie więcej ludzi średniego wzrostu, a mniej wysokich lub niskich. Aby lepiej odwzorować naturę, możemy chcieć, aby nasze małpy częściej były średniego wzrostu (250 pikseli), ale istniały również osobniki bardzo wysokie albo bardzo niskie, tylko w mniejszej liczbie.
Rozkład wartości, który rośnie wokół przeciętnej wartości(zwanej wartością “średnią”), znany jest jako rozkład “normalny”. Nazywany jest też rozkładem Gaussa (od nazwiska matematyka Carla Friedricha Gaussa), albo, jeżeli pochodzicie z Francji, rozkładem Laplace'a (od nazwiska Pierre-Simona Laplace'a). Obaj matematycy pracowali równocześnie nad tym rozkładem na początku dziewiętnastego wieku.
Gdy rysujemy rozkład na wykresie, otrzymujemy coś takiego, zwanego potocznie krzywą dzwonową:
Wykres standardowej krzywej dzwonowej
Standardowa krzywa dzwonowa
Krzywa te jest generowana przez matematyczną funkcję która liczy prawdopodobieństwo wystąpienia wartości jako funkcję średniej (często zapisywanej jako μ, grecka litera mu) i odchylenia standardowego (σ, grecka litera sigma).
Średnia jest prosta do zrozumienia. W przypadku naszego wzrostu z przedziału od 200 do 300, prawdopodobnie podświadomie zdajecie sobie sprawę, że wartość przeciętna (średnia) wynosi 250. Ale co zrobić, jeżeli powiem, że nasze odchylenie standardowe wynosi 3 lub 15? Co to oznacza dla wartości? Spojrzenie na wykres może dać nam wskazówkę. Powyższy wykres pokazuje nam rozkład z bardzo niskim odchyleniem standardowym, gdzie większość wartości skupia się ciasno wokół średniej. Poniższy wykres pokazuje nam znacznie wyższe odchylenie standardowe, gdzie wartości są bardziej równomiernie rozłożone od średniej:
Wykres krzywej dzwonowej z większym odchyleniem standardowym
Krzywa dzwonowa z większym odchyleniem standardowym
Nie znacie pojęcia "odchylenia standardowego"? Nic nie szkodzi! Możecie opanować wariancję i odchylenie standardowe w innej części Khan Academy.
Liczby wyglądają następująco: W wybranej populacji, 68% wszystkich jej członków będzie posiadało wartości z zakresu pierwszego odchylenia standardowego od średniej, 95% z dwóch pierwszych odchyleń standardowych, a 99,7% z trzech odchyleń standardowych. Zakładając odchylenie standardowe 5 pikseli, tylko 0.3% wszystkich małp będzie niższe niż 235 pikseli (trzy odchylenia standardowe poniżej średniej 250) albo wyższe od 265 pikseli (trzy odchylenia standardowe powyżej średniej 250).

Obliczanie średniej i odchylenia standardowego
Weźmy na przykład klasę dziesięciu uczniów którzy otrzymali następującą liczbę punktów (na 100 możliwych) podczas sprawdzianu:
85, 82, 88, 86, 85, 93, 98, 40, 73, 83
Wartość średnią liczby punktów zdobytych w grze obliczamy, dodając wszystkie wyniki i dzieląc przez liczbę danych, czyli przez liczbę grających.
Wartość średnia = (85+82+88+86+85+93+98+40+73+83)/10=81,3
Odchylenie standardowe jest równe pierwiastkowi kwadratowemu ze średniej wartości kwadratów odchyleń od średniej.
W pierwszym kroku obliczamy odchylenie (różnicę pomiędzy daną liczbą punktów a wartością średnią wszystkich punktów) i podnosimy ją do kwadratu:
Liczba punktówOdchylenie od średniejKwadrat odchylenia od średniej
858581,3=3,7(3,7)2=13,69
828281,3=0,7(0,7)2=0,49
888881,3=6,7(6,7)2=44,89
868881,3=4,7(4,7)2=22,09
858581,3=3,7(3,7)2=13,69
939381,3=11,7(11,7)2=136,89
989881,3=16,7(16,7)2=278,89
404081,3=41,3(41,3)2=1705,69
737381,3=8,3(8,3)2=68,89
838381,3=1,7(1,7)2=2,89
Aby obliczyć odchylenie standardowe, obliczamy najpierw wariancję, to znaczy dodajemy teraz kwadraty odchyleń i dzielimy przez liczbę danych, to znaczy sumujemy wartości w ostatniej kolumnie i dzielimy sumę przez liczbę wierszy:
Wariancja = 2288,1/10 = 228,81
Ochylenie standardowe równa się pierwiastkowi kwadratowemu z wariancji:
Odchylenie standardowe = 228,81 = 15,13.
Chcecie lepiej zrozumieć odchylenie standardowe? Możecie przestudiować wariancję i odchylenie standardowe w innej części Khan Academy.

Na nasze szczęście, aby używać rozkładu normalnego losowych liczb w naszym programie, nie musimy sami wykonywać tych obliczeń. Zamiast tego użyjemy obiektu Random dostarczonego przez ProcessingJS.
Aby używać Random, musimy wpierw stworzyć nową instancję obiektu Random, przekazując 1 jako parametr. Nazywamy tą zmienną "generatorem", ponieważ to, co stworzyliśmy może funkcjonować jako generator liczb losowych.
var generator = new Random(1);
Jeżeli chcemy uzyskać losową liczbę z rozkładem normalnym (albo Gaussa) za każdym razem gdy wywołujemy draw(), wystarczy po prostu wywołać funkcję nextGaussian().
var num = generator.nextGaussian();
println(num);
Tak więc co możemy zrobić z tą wartością? Co zrobić, jeżeli chcemy jej użyć, na przykład do przypisania współrzędnej x kształtowi który rysujemy na ekranie?
Funkcja nextGaussian() zwraca rozkład normalny liczb losowych z następującymi parametrami:średnia równa zero i odchylenie standardowe równe jeden. Powiedzmy, że chcemy średnią wynoszącą 200 (środkowy poziomy piksel na naszym ekranie o szerokości 400) i odchylenie standardowe 60 pikseli. Możemy dopasować naszą wartość mnożąc ją przez odchylenie standardowe i dodając średnią.
var standardDeviation = 60;
var mean = 200;
var x = standardDeviation * num + mean;
Teraz możemy stworzyć nasz program, który będzie rysował półprzeźroczyste koła na podstawie rozkładu normalnego. Ciemniejsze miejsca będą bliżej środka, gdzie większość obiektów się znajdzie, ale czasami znajdą się koła narysowane bardziej na prawo lub lewo od środka.

Kurs "Symulacje natury" jest częścią książki "The Nature of Code" napisanej przez Daniela Shiffmana, wydanej na licencji Creative Commons Attribution-NonCommercial 3.0 Unported License.

Chcesz dołączyć do dyskusji?

Na razie brak głosów w dyskusji
Rozumiesz angielski? Kliknij tutaj, aby zobaczyć więcej dyskusji na angielskiej wersji strony Khan Academy.