Generando un número aleatorio entre 1 y 10 Java [duplicado]

Resuelto Shania asked hace 11 años • 3 respuestas

Quiero generar un número entre 1 y 10 en Java.

Esto es lo que probé:

Random rn = new Random();
int answer = rn.nextInt(10) + 1;

¿Hay alguna manera de saber qué poner entre paréntesis ()al llamar al método nextInt y qué agregar?

Shania avatar Dec 05 '13 08:12 Shania
Aceptado

Como dice la documentación , esta llamada al método devuelve "un valor int pseudoaleatorio distribuido uniformemente entre 0 (inclusive) y el valor especificado (exclusivo)". Esto significa que obtendrás números del 0 al 9 en tu caso. Entonces has hecho todo correctamente sumando uno a ese número.

En términos generales, si necesita generar números desde minhasta max(incluidos ambos), escriba

random.nextInt(max - min + 1) + min
Malcolm avatar Dec 05 '2013 01:12 Malcolm

La forma estándar de hacer esto es la siguiente:

Proporcionar:

  • mín Valor mínimo
  • máx Valor máximo

y obtener a cambio un número entero entre mínimo y máximo, inclusive.

Random rand = new Random();

// nextInt as provided by Random is exclusive of the top value so you need to add 1 

int randomNum = rand.nextInt((max - min) + 1) + min;

Consulte el JavaDoc correspondiente .

Como lo explica Aurund, los objetos aleatorios creados con poco tiempo de diferencia entre sí tenderán a producir resultados similares, por lo que sería una buena idea mantener el objeto aleatorio creado como un campo, en lugar de un método.

Scary Wombat avatar Dec 05 '2013 01:12 Scary Wombat

Esto funcionará para generar un número del 1 al 10. Asegúrese de importar Aleatorio en la parte superior de su código.

import java.util.Random;

Si quieres probarlo, prueba algo como esto.

Random rn = new Random();

for(int i =0; i < 100; i++)
{
    int answer = rn.nextInt(10) + 1;
    System.out.println(answer);
}

Además, si cambia el número entre paréntesis, se creará un número aleatorio de 0 a ese número -1 (a menos que, por supuesto, agregue uno como lo hizo, entonces será de 1 al número que ingresó).

Demosthanes avatar Dec 05 '2013 01:12 Demosthanes