Array de números aleatorios sin repetición en Java

Este ejercicio consiste en generar un array de 20 numeros enteros (del 1 al 49) que no se repitan despues el usuario ingresara un array de 6 números y le diremos cuantos numeros a acertado comprobando las coincidencias con el primer array de 20 enteros. La función que genera los números aleatorios sin repetición es la función loteriaSinRepeticion.

La función miApuesta crea un array de enteros con los números elegidos por el usuario

La función comprobacion cuenta las coincidencias que hay entre el array de los 20 números aleatorios sin repetición y la apuesta del usuario.

package javi;

import java.util.Scanner;

/**
 *
 * @author Javi
 */
public class Actividad5_01b {

    /**
     * @param args the command line arguments
     */
    public static int comprobacion(int ganador[],int miComb[]){
        System.out.println("La combinacion ganadora es");
        for(int i=0;i<ganador.length;i++){
            System.out.print(ganador[i]+" ");
        }
        System.out.println(" ");
        System.out.println("Tus numeros son");
        for(int i=0;i<6;i++){
            System.out.print(miComb[i]+" ");
        }
        
        int k=0;
        for(int i=0;i<ganador.length;i++){
            for (int j=0;j<miComb.length;j++){
                if(ganador[i]==miComb[j]){
                    k++;
                }
            }
        }
        System.out.println(" ");
        System.out.println("Has acertado "+k+" numeros");
        return k;
    }
    
    
    
    
    public static int[] miApuesta(){
        Scanner miteclado = new Scanner(System.in);
        int primitiva[];
        primitiva=new int[6];
        for(int i=0;i<6;i++){
            System.out.println("Dime tus numeros");
            primitiva[i] = miteclado.nextInt();
        }
        return primitiva;
    }
    
    public static int[] loteriaSinRepeticion(int arr[]){
        
        for(int i=0;i<arr.length;i++){
            boolean encontrado = false;
            int ale=(int)(Math.random()*48)+1;
            for (int j=0;j<i ;j++){
                if(arr[j]==ale){
                    encontrado=true;
                }
            }
            if(!encontrado){
                arr[i]=ale;
            }else{
                i--;
            }
        }
        
        return arr;
    }
    
    public static void main(String[] args) {
        // TODO code application logic here
        int combinacion[];
        combinacion=new int[20];
        comprobacion(loteriaSinRepeticion(combinacion),miApuesta());
    }
    
}

Espero que les guste 😉

La salida sería algo como esta:

Dime tus numeros
1
Dime tus numeros
2
Dime tus numeros
3
Dime tus numeros
4
Dime tus numeros
5
Dime tus numeros
6
La combinacion ganadora es
32 38 8 17 48 34 15 11 3 33 10 24 27 41 36 35 25 14 23 42
Tus numeros son
1 2 3 4 5 6
Has acertado 1 numeros

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

DorniSoft Inc.