Jak vygeneruji náhodné číslo int?

Jak vygeneruji náhodné celé číslo v jazyce C#?

Řešení

Třída Random slouží k vytváření náhodných čísel. (Samozřejmě pseudonáhodná.).

Příklad:

Jazyk: c# -->

Random rnd = new Random();
int month  = rnd.Next(1, 13);  // creates a number between 1 and 12
int dice   = rnd.Next(1, 7);   // creates a number between 1 and 6
int card   = rnd.Next(52);     // creates a number between 0 and 51

Pokud se chystáte vytvořit více než jedno náhodné číslo, měli byste si ponechat instanci Random a znovu ji použít. Pokud vytvoříte nové instance příliš blízko v čase, vytvoří stejnou sérii náhodných čísel, protože generátor náhodných čísel je nasazen ze systémových hodin.

Komentáře (7)

Pozor na to, že new Random() je nasazen na aktuální časové razítko.

Pokud chcete generovat jen jedno číslo, můžete použít:

Další( int.MinHodnota, int.MaxHodnota )`.

Další informace najdete ve třídě Random, avšak upozorňujeme:

Protože však hodiny mají konečné rozlišení, použití bezparametrického konstruktoru k vytvoření různých objektů Random v těsném sledu za sebou vytvoří generátory náhodných čísel, které produkují identické posloupnosti náhodných čísel.

Nepoužívejte tedy tento kód ke generování sérií náhodných čísel.

Komentáře (3)
Random r = new Random();
int n = r.Next();
Komentáře (0)