Como rellenar un array de números aleatorios en Java

Hola a todos, hoy os voy a explicar como podemos rellenar un array de números aleatorios en Java.

A veces, nos puede venir bien tener un array de números aleatorios para testear o como parte de un algoritmo.

Para generar un número aleatorio, tenemos un manual para ello:

Como generar números aleatorios con el método Math.random de Java

Lo único que tenemos que hacer es un simple bucle, llamando a esta función por cada iteración.

Así seria el código:


public class RellenarArrayNumeros {

    public static void main(String[] args) {

        int[] numerosAleatorios = new int[10];
        
        // generamos los numeros aleatorios
        for (int i = 0; i < numerosAleatorios.length; i++) {
            numerosAleatorios[i] = generaNumeroAleatorio(1, 10);
        }
        
        // Mostramos los numeros aleatorios
        for (int i = 0; i < numerosAleatorios.length; i++) {
            System.out.println(numerosAleatorios[i]);
        }

    }

    /**
     * Genera un numero aleatorio entre dos numeros. NOTA: se incluye el minimo,
     * pero no el maximo
     *
     * @param minimo Número máximo
     * @param maximo Número minimo
     * @return numero entre minimo y maximo
     */
    protected static int generaNumeroAleatorio(int minimo, int maximo) {
        int num = (int) Math.floor(Math.random() * (minimo - (maximo + 1)) + (maximo + 1));
        return num;
    }

}


El resultado seria este (diferentes ejecuciones):

Si lo queremos reutilizar, podríamos hacerlo así:


public class RellenarArrayNumeros {

    public static void main(String[] args) {

        int[] numerosAleatorios = new int[10];
        
        // generamos los numeros aleatorios
        rellenaArrayAleatorios(numerosAleatorios, 1, 10);
        
        // Mostramos los numeros aleatorios
        for (int i = 0; i < numerosAleatorios.length; i++) {
            System.out.println(numerosAleatorios[i]);
        }


    }

    /**
     * Genera un numero aleatorio entre dos numeros. NOTA: se incluye el minimo,
     * pero no el maximo
     *
     * @param minimo Número máximo
     * @param maximo Número minimo
     * @return numero entre minimo y maximo
     */
    protected static int generaNumeroAleatorio(int minimo, int maximo) {
        int num = (int) Math.floor(Math.random() * (minimo - (maximo + 1)) + (maximo + 1));
        return num;
    }

    /**
     * Rellena un array de numeros aleatorios entre un mínimo y un máximo
     *
     * @param array Array que queremos rellenar
     * @param minimo Número mínimo
     * @param maximo Número máximo
     */
    public static void rellenaArrayAleatorios(int array[], int minimo, int maximo) {

        for (int i = 0; i < array.length; i++) {
            array[i] = generaNumeroAleatorio(minimo, maximo);
        }
    }

}

Espero que os sea de ayuda. Si tenéis dudas, preguntad. Estamos para ayudarte.

Compartir

Deja una respuesta

Tu dirección de correo electrónico no será publicada.