Java - como genero numeros de 4 cifras aleatoriamente?

 
Vista:

como genero numeros de 4 cifras aleatoriamente?

Publicado por necesito aiuda bro (1 intervención) el 10/04/2020 04:16:11
como genero numeros de 4 cifras aleatoriamente? en eclipse o netbeans gracias!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Rodrigo
Val: 2.041
Plata
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

como genero numeros de 4 cifras aleatoriamente?

Publicado por Rodrigo (623 intervenciones) el 10/04/2020 13:18:51
(Editado despues :) )
1
import java.util.Random;

y luego, si solo requieres 1 vez la generacion del numero de 4 cifras ...
1
int n4 = new Ramdom().nextInt(9000) + 1000;

Si es. mas de 1 vez, crea una variable para Random por separado

1
2
3
Random random = new Random();
// .. luego, probablemente en un ciclo ...
int n4 = random.nextInt(9000) + 1000;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Kabuto
Val: 3.428
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

como genero numeros de 4 cifras aleatoriamente?

Publicado por Kabuto (1381 intervenciones) el 10/04/2020 13:22:54
Te basta con esto:
1
2
3
4
5
6
7
8
9
10
11
public class Random4 {
 
	public static void main(String[] args) {
 
		Random rnd = new Random();
		int num4 = rnd.nextInt(9000) + 1000;
 
		System.out.println("Random 4 cifras: " + num4);
	}
 
}

¿Y por qué esta línea?
int num4 = rnd.nextInt(9000) + 1000;

Tu necesitas números de 4 cifras, es decir, entre 1000 y 9999.

Si hicieramos solo esto:
rnd.nextInt(10000)

Obtendríamos cifras entre 0 y 9999 (el 10000 queda excluido). Esto no nos sirve, porque el rango de cifras entre 0 y 999 no lo queremos.

Como queremos que la cifra mínima sea 1000, podemos sumar este valor al número random obtenido
rnd.nextInt(10000) + 1000

Con esto evitamos valores por debajo de 999, porque cuando el random devuelva 0, se le sumará 1000 y obtendremos el deseado mínimo de 1000.

Pero ahora nos estamos pasando del tope. Cuando el random devuelva 9999, al sumarle 1000, nos pasamos a 10999. Estaremos obteniendo números de 4 cifras.
¿Como evitarlo?

Rebajamos el argumento que le hemos pasado al random, restándole el mínimo de 1000

rnd.nextInt(10000 - 1000) + 1000
Es decir:
rnd.nextInt(9000) + 1000


Podemos interpretarlo de otra forma:

1
2
3
4
int minimo = 1000; // Valor mínimo incluido
int maximo = 10000; //Valor máximo excluido
 
int numero = rnd.nextInt(maximo - minimo) + minimo;


Prueba el código y pregunta si algo aún no te ha quedado claro.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar