MATEMATIKA
Studenti se na středních školách učí o náhodě. Počítají pravděpodobnosti různých jevů, leckdy i složitých za použití kombinatoriky. Hlubšího pochopení mohou dosáhnout tím, že s náhodou budou pracovat na živo. A právě tam může být vlastní program neocenitelným pomocníkem. Při házení kostkou student získá jedno náhodné číslo např. za 5 sekund. Pokud kostkou hází počítač, je možno získat miliony náhodných čísel za sekundu.
Jevem, který se dá pomocí počítače velice pěkně ilustrovat, je „náhodnost náhody“ neboli její fluktuace. Spočítáme sice, že šestka padne na kostce s pravděpodobností 1/6, ale v reálných pokusech to téměř nikdy přesná šestina případů nebude. Hodíme-li např. 600×, padne šestka dejme tomu 103×. Hodíme-li příště zase 600×, padne například 89×.
Vytvoříme tedy program, který 600× hodí kostkou (neboli vygeneruje náhodné číslo v rozmezí 1 až 6) a průběžně bude počítat, kolikrát které číslo padlo. Jinými slovy budeme vytvářet tabulku četností.

Koncepční otázky programu
Hlavní myšlenky pro vytvoření programu jsou tyto:
· Generování jednoho náhodného čísla je technickou otázkou, jejíž řešení závisí na použité výpočetní platformě. Pro platformu .NET/C# uvádím řešení níže.
· Generování je třeba 600× zopakovat, k tomu se použije cyklus běžící od 1 do 600.
· Jedná se o úlohu počítání (kolikrát se něco stalo), která se standardně řeší pomocí celočíselné proměnné (počitadla), jež se na začátku vynuluje a při každém výskytu počítaného jevu se zvětší o jedničku.
· Je třeba mít šest počitadel pro šest čísel na kostce. Jelikož se všemi se bude pracovat stejně, je nejlepší všechna umístit do pole, jež bude indexováno právě hozeným číslem.
Technické otázky na platformě .NET/C#
· Někdy při startu programu vytvoříme generátor náhodných čísel jakožto instanci třídy Random:
Random náhoda = new Random();
· Pokaždé, když je potřeba náhodné číslo, zavoláme metodu Next této instance:
int náhodnéČíslo = náhoda.Next(min, max+1);
Metoda přebírá dva parametry určující rozmezí min až max, ve kterém se má náhodné číslo vygenerovat. Důležité je pamatovat na to, že horní mez požadovaného rozmezí je třeba vždy zvětšit o jedničku.
· Pole jsou v jazyce C# indexovány počínaje nulou. Abychom se vyhnuli odečítání a přičítání jedničky, deklarujeme pole pro sedm prvků namísto pro šest, přičemž prvek na indexu 0 nevyužijeme.
Řešení
Uvádím jádro zdrojového kódu řešení:

V odkazu najdete také
kompletní projekt pro
Visual C#. Spustitelný .EXE soubor z podsložky
bin/debug využijete i v případě, že toto vývojové prostředí na svém počítači nemáte. K běhu zmíněného .EXE souboru je na cílovém počítači zapotřebí přítomnost .NET Framework 3.5 (pokud není u vás nainstalován,
stáhněte si jej zdarma ze stránek společnosti Microsoft).
Kam dál v .NET/C#
Kam dál ve vizualizaci výsledků
Výsledky studovaného programu můžete pro větší efekt nechat zobrazit graficky. Přikládám obrázek a
kompletní projekt pro
Visual C#.

Kam dál v matematice
Matematickou stránku můžete posunout o řád složitosti výš, pokud budete studovat velikost fluktuací. Velikost lze měřit např. střední kvadratickou odchylkou od průměru. Tato absolutní velikost fluktuací by měla růst s odmocninou počtu hodů.
Po vydělení průměrnou hodnotou četnosti dostanete relativní velikost fluktuací, která by měla s odmocninou počtu hodů klesat.
Důsledky v dalších oborech
V tomto díle diskutovaná „náhodnost náhody“ má významné důsledky v dalších oborech lidského poznání. Např. v ekonomii se využívá při studiu cenového vývoje na akciových trzích, v elektronice pro popis šumu, ve fyzice při studiu Brownova pohybu a spoustě dalších aplikací. Jen pro zajímavost, právě teorie fluktuací brownovských částeček s důsledkem pro stanovení počtu atomů v určitém množství látky patří k nejcennějším pracem pana Einsteina z jeho zázračného roku 1905.