Random aleatorio = nuevo aleatorio (42);
Creará el mismo número cada vez. Estás creando un nuevo Aleatorio cada vez con la misma semilla (42).
Cambiar 42 a 0 creará un nuevo Random con una semilla basada en varias cosas, incluido el tiempo. Incluso eso podría crear la misma secuencia aleatoria, si la rutina se ejecuta por segunda vez dentro de 1 milisegundo.
- ¿Cómo podemos demostrar que cada matriz 1D tiene un pico o que cualquier matriz 1D siempre tiene un pico?
- En los lenguajes de programación donde una matriz crece dinámicamente en tamaño, ¿no es una preocupación porque es O (n) complejidad de tiempo?
- ¿Cuáles son los ejemplos prácticos de algoritmos de clasificación? He oído hablar de la clasificación de burbujas, la clasificación rápida y la clasificación por inserción. ¿Cuáles son los ejemplos prácticos de estos algoritmos? ¿Para qué se usan y dónde son necesarios en los sistemas de software?
- Cómo convertirse en un maestro de algoritmos C y estructuras de datos
- ¿Alguien puede explicar la solución a SPOJ.com - Problema M3TILE?
La solución más fácil es crear rand fuera de este método, como
Rand aleatorio estático = nuevo aleatorio ();
public static int randomNums (int randomVal) {
randomVal = rand.nextInt ((20-1) +1) +1;
return randomVal;
}
Tenga en cuenta que no es necesario pasar randomVal como parámetro y, de hecho, no lo está utilizando. Su valor se sobrescribe inmediatamente.
Entonces aún mejor es:
Rand aleatorio estático = nuevo aleatorio ();
public static int randomNums () {
int randomVal = rand.nextInt ((20-1) +1) +1;
return randomVal;
}
O incluso más simple:
Rand aleatorio estático = nuevo aleatorio ();
public static int randomNums () {
return rand.nextInt ((20-1) +1) +1;
}
En este punto, cuando el método solo contiene una línea, comienzas a preguntarte si debería ser un método. Pero ese es un tema diferente.