mercredi 23 mai 2018

I came up with these two methods to get 5 unique random numbers. Which one is better/efficient? Is there any other way more efficient?

Method 1

 public int[] randIntGen() {
    int randInt[] = {0,0,0,0,0};
    Random random = new Random();
    randInt[0] = random.nextInt(52) + 1;            
    randInt[1] = random.nextInt(52) + 1;
    randInt[2] = random.nextInt(52) + 1;
    randInt[3] = random.nextInt(52) + 1;
           randInt[4] = random.nextInt(52) + 1;
    while(randInt[1] == randInt[0]) {
        randInt[1] = random.nextInt(52) + 1 ;
    }
    while(randInt[2] == randInt[0] || randInt[2] == randInt[1]) {
        randInt[2] = random.nextInt(52) + 1;
    }           
           while(randInt[3] == randInt[0] || randInt[3] == randInt[1] || randInt[3] == randInt[2]) {
        randInt[3] = random.nextInt(52) + 1;
    }           
           while(randInt[4] == randInt[0] || randInt[4] == randInt[1] || randInt[4] == randInt[2] || randInt[4] == randInt[3]) {
        randInt[4] = random.nextInt(52) + 1 ;
    }           
    return randInt;
}

Method 2

public int[] randIntGen()   {
     int randInt[] = {1,2,3,4,5};
     Random random = new Random();
            ArrayList<Integer> cl = new ArrayList<Integer>(52);
            int i = 0;
            while(i<52){
                i++;
                cl.add(i-1,i);
            }
            for(int j=0; j<5;j++) {
                randInt[j] = cl.get(random.nextInt(52));
                cl.remove(randInt[j]-1);                
            }
    return randInt;
} 




Aucun commentaire:

Enregistrer un commentaire