Hoe genereer ik een willekeurig int nummer?

Hoe genereer ik een willekeurig geheel getal in C#?

Oplossing

De Random klasse wordt gebruikt om willekeurige getallen te maken. (Pseudo-willekeurig natuurlijk.).

Voorbeeld:

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

Als je meer dan één random getal wilt maken, moet je de Random instantie bewaren en hergebruiken. Als je nieuwe instanties te dicht in de tijd maakt, zullen ze dezelfde reeks willekeurige getallen produceren omdat de willekeurige generator wordt gezaaid vanuit de systeemklok.

Commentaren (7)

Let op dat new Random() wordt gezaaid op de huidige tijdstempel.

Als je slechts één getal wilt genereren kun je:

new Random().Next( int.MinValue, int.MaxValue ).

Voor meer informatie, kijk naar de Random class, maar let op:

Echter, omdat de klok een eindige resolutie heeft, creëert het gebruik van de parameterloze constructor om verschillende Random objecten kort na elkaar te maken, willekeurige getallengeneratoren die identieke reeksen van willekeurige getallen produceren

Gebruik deze code dus niet om een reeks willekeurige getallen te genereren.

Commentaren (3)
Random r = new Random();
int n = r.Next();
Commentaren (0)