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. Los campos obligatorios están marcados con *