Vladimír Lukeš: METAFONT - Jak kreslit obrázky
Predchozi (Obsah) Dalsi

12. Náhodná čísla

Potřebujete občas kreslit náhodně generované obrázky? Jestliže ano, pak k tomu můžete použít právě METAFONT, který umí generovat náhodná čísla, a to dokonce dvěma způsoby. Příkaz normaldeviate generuje náhodná čísla s normálním rozdělením se střední hodnotou v bodě nula a odchylkou rovnou jedné. To znamená, že zhruba polovina náhodných čísel je kladná a druhá polovina záporná a pravděpodobnost že |x|<1 je přibližně 68%.


for i=1 upto 500:
drawdot(.5w+w/6*normaldeviate,.5h+h/6*normaldeviate);
endfor;

obrazek 26


Nahradíme-li normaldeviate příkazem uniformdeviate, budou generována náhodná čísla s rovnoměrným rozdělením mezi 0 a t, kde t je parametr příkazu.


for i=1 upto 500:
drawdot(uniformdeviate w,uniformdeviate h);
endfor;

obrazek 25


Kombinací obou příkazů, uniformdeviate a normaldeviate, dostaneme následující výsledky.


for i=1 upto 500:
drawdot(uniformdeviate w,.5h+h/6*normaldeviate);
endfor;

obrazek 27


Při každém novém spuštění METAFONTu, jsou generována vždy jiná (pseudo)náhodná čísla. Je tomu tak, protože generátor náh. čísel je inicializován podle aktuálního datumu a času. Pokud potřebujeme získat stále stejná náhodná čísla, některá čísla např. vypadají "více náhodně" než jiná, nastavíme proměnnou randomseed pokaždé na tutéž hodnotu.


Predchozi
Converted by Selathco 0.85 on 19.06.1999 11:53
Dalsi