Určitě jste někdy narazili na to, že potřebujete vygenerovat náhodné číslo. Může se jednat o použití v nějaké šifře, hře atd. Právě na příkladu hodu dvou kostek si ukážeme generování náhodných čísel.
Pro generování náhodných čísel pomocí Visual Studia slouží třída Random. Třída Random negeneruje náhodné číslo, ale pseudonáhodné číslo, které je vypočítáno na základě algoritmu, do kterého vstupují mimo jiné i systémové hodiny. Proto pokud definujeme dva konstruktory Random po sobě, výsledkem budou stejné pseudonáhodné čísla. Zkusíme to na příkladu generování dvou náhodných čísel v rozmezí 1 až 100.
Random random2 = new Random();
r_num2 = random2.Next(1, 101);
V tomto případě bude vždy platit, že r_num1 se rovná r_num2. Pokud tedy potřebujeme vytvořit dvě třídy Random tak, aby každá generovala jiná čísla, je nutné mezi vytvořenými instancemi vložit krátké uspání vlákna.
System.Threading.Thread.Sleep(100); // uspani vlakna na 100 ms
Random random2 = new Random();
r_num2 = random2.Next(1, 101);
V tomto případě se bude jednat o generování pseudonáhodných čísel, které se mohou i shodovat vlivem statistiky, ale rozhodně nebude každé vygenerované číslo shodné.
Pro vytvoření vzorového příkladu hodu dvou kostek budeme potřebovat pouze dvě komponenty Label a jednu komponentu Button. Vytvořený zdrojový kód je velmi jednoduchý. Do události po kliknutí tlačítka vložíme následující kód.
r_num2 = random.Next(1, 7);// vygenerovani nahodneho cisla v rozmezi 1 – 6
label_num2.Text = Convert.ToString(r_num2); // zobrazeni druheho cisla
Jako první si definujeme proměnné pro uložení náhodných čísel. Poté vytvoříme instanci třídy Random, která slouží pro generování náhodných čísel. Pro vygenerování náhodného čísla využijeme metodu Next(1,7), která obsahuje omezení pro vygenerování čísla v rozmezí 1 až 6. Jako poslední jsou vygenerované čísla zobrazeny v komponentách Label. Náhled vytvořeného formuláře lze vidět na Obr. 1.
Následující: C# – Tipy, triky, návody – 6: Zobrazení informační zprávy
Předchozí: C# – Tipy, triky, návody – 4: Zjištění délky trvání určité části zdrojového kódu
AUTOŘI NEBEROU ŽÁDNOU ODPOVĚDNOST ZA PŘÍPADNÉ ÚJMY NA ZDRAVÍ ČI MAJETKU.
By Pešek Ne Lis 1st 2015 at 11:09 pm
Díky za (i když krátký) popis Random. Speciálně jsem hledal generování dvou rozdílných čísel, což jsme zde nalezl! Supr!