Kā ģenerēt nejaušu int skaitli?

Kā ģenerēt nejaušus veselos skaitļus programmā C#?

Risinājums

Lai izveidotu nejaušus skaitļus, tiek izmantota Random klase. (Pseidarindomus, protams.).

Piemērs:

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

Ja gatavojaties izveidot vairāk nekā vienu nejaušo skaitli, jums vajadzētu saglabāt Random gadījumu un izmantot to atkārtoti. Ja izveidosiet jaunas instances pārāk tuvu laikā, tās radīs vienu un to pašu nejaušo skaitļu sēriju, jo nejaušo skaitļu ģenerators tiek iesēts no sistēmas pulksteņa.

Komentāri (7)

Uzmanieties, ka new Random() tiek izsēts pēc pašreizējā laika zīmoga.

Ja vēlaties ģenerēt tikai vienu skaitli, varat izmantot:

Nākamais( int.MinValue, int.MaxValue )`.

Lai iegūtu plašāku informāciju, apskatiet Random klasi, tomēr ņemiet vērā:

Tomēr, tā kā pulkstenim ir galīga izšķirtspēja, izmantojot konstruktoru bez parametriem, lai radītu dažādus Random objektus tuvu viens pēc otra, tiek radīti nejaušo skaitļu ģeneratori, kas rada identiskas nejaušo skaitļu sekvences.

Tāpēc neizmantojiet šo kodu, lai ģenerētu nejaušo skaitļu sērijas.

Komentāri (3)
Random r = new Random();
int n = r.Next();
Komentāri (0)