Come posso generare un numero int casuale?

Come posso generare un numero intero casuale in C#?

Soluzione

La classe Random è usata per creare numeri casuali. (Pseudo-casuali, ovviamente).

Esempio:

linguaggio: 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

Se avete intenzione di creare più di un numero casuale, dovreste mantenere l'istanza Random e riutilizzarla. Se crei nuove istanze troppo vicine nel tempo, esse produrranno la stessa serie di numeri casuali poiché il generatore casuale è seminato dall'orologio di sistema.

Commentari (7)

Attenzione che new Random() è seminato sul timestamp corrente.

Se volete generare solo un numero potete usare

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

Per maggiori informazioni, guardate la classe Random, anche se si prega di notare:

Tuttavia, poiché l'orologio ha una risoluzione finita, usando il costruttore senza parametri per creare diversi oggetti Random in stretta successione si creano generatori di numeri casuali che producono sequenze identiche di numeri casuali

Quindi non usate questo codice per generare una serie di numeri casuali.

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