2010-10-20 22 views

Respuesta

293

Usted puede intentar

Random r = new Random(); 
int rInt = r.Next(0, 100); //for ints 
int range = 100; 
double rDouble = r.NextDouble()* range; //for doubles 

Tenga una mirada en

Random Class, Random.Next Method (Int32, Int32) y Random.NextDouble Method

+25

Solo para agregar una nota, si usa NextDouble() y no desea que el límite inferior sea cero. Se multiplica por la diferencia entre el límite superior y el límite inferior, luego se suma la diferencia entre el límite inferior y cero. Por lo tanto, para -1 a 1 'double rDouble = (r.NextDouble() * 2) -1.0;' –

24

Algo así como:

var rnd = new Random(DateTime.Now.Millisecond); 
int ticks = rnd.Next(0, 3000); 
+1

para lo que es 'DateTime.Now.Millisecond'? – Hille

+0

Tienes que poner algo para empezar ... el objeto Random simplemente hace muchas operaciones matemáticas sobre el valor que das, y lo hace de forma tal que cada llamada de Siguiente() _ en el mismo objeto Random_ da como resultado un valor bastante aleatorio a la llamada anterior. Para que el resultado sea más aleatorio _entre diferentes objetos Aleatorios_, comienza con un número diferente - aquí, el DateTime.Now.Millisecond. Si coloca un valor constante, en lugar de uno variable, obtendría los mismos resultados de .Next(). –

9

Uso:

Random r = new Random(); 
int x= r.Next(10);//Max range 
+0

Esto no especifica un rango. –

+0

Acaba de hacer lower_value + r.Next (10) para obtener un rango aleatorio. – Salgat

19

Trate a continuación código.

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 
Cuestiones relacionadas