Na początek musimy w pewien sposób zdefiniować monetę. Interesuje nas tylko to, że moneta posiada dwie strony nazywane ,,orzeł'' i ,,reszka''. Pozostałe jej cechy są nieistotne. Musimy te 2 przypadki jakoś zidentyfikować w programie. Dla przykładu, poniżej używamy tekstowych etykiet "ORZEŁ" i "RESZKA". Mogą to być jednak jakiekolwiek dwie inne etykiety, np. liczby 0 i 1, symbole o i r lub cokolwiek innego dopuszczalnego przez składnię danego języka programowania. W Mathematice możemy nawet wykonać fotografie i użyć w tym celu obrazów orła i reszki.

Z6Z1_1.gif

Out[3]=

Z6Z1_2.gif

Kolejnym etapem jest umiejętność wykonania ,,rzutu''. W Mathematice mamy do tego celu specjalne polecenie RandomChoice (ang. losowy wybór ), które z równym prawdopodobieństwem wybiera losowo jeden z elementów podanej listy, np:

In[9]:=

Z6Z1_3.gif

Out[9]=

Z6Z1_4.gif

Interesuje nas przypadek 20 rzutów w serii; można tu użyć RandomChoice, drugi argument podaje ile razy będzie losowanie, a wynikiem jest lista zdarzeń, którą zapisujemy do zmiennej rzut20:

In[10]:=

Z6Z1_5.gif

Out[10]=

Z6Z1_6.gif

Zdarzeniem które nas interesuje jest wystąpienie 7 ,,RESZEK'', musimy więc ustalić ile ich jest. Można do tego celu wykorzystać polecenie Count (ang. policz)

In[11]:=

Z6Z1_7.gif

Out[11]=

Z6Z1_8.gif

Aby ustalić, czy trafiliśmy 7 ,,RESZEK'' sprawdzamy czy instrukcja Count dała wynik równy 7 za pomocą instrukcji warunkowej If.
Jeżeli trafimy 7 reszek, wypisany zostanie wynik drugiego argumentu instrukcji warunkowej, czyli odpowiedni komunikat ("7 reszek"), w przeciwnym wypadku trzeci argument czyli tekst "Nie udało się":

Z6Z1_9.gif

Out[25]=

Z6Z1_10.gif

Aby wykonać symulację MonteCarlo, czynnosci powyżej należy powtórzyć setki razy i zliczyć zdarzenia sprzyjające:

Z6Z1_11.gif

In[57]:=

Z6Z1_12.gif

Out[57]=

Z6Z1_13.gif

In[58]:=

Z6Z1_14.gif

Out[58]=

Z6Z1_15.gif

In[59]:=

Z6Z1_16.gif

Out[59]=

Z6Z1_17.gif

In[60]:=

Z6Z1_18.gif

Out[60]=

Z6Z1_19.gif

Spikey Created with Wolfram Mathematica 7.0