2010-06-22 6 views
2

je veux générer des nombres d'un tableau au hasard, & chaque nombre devrait être unique aussi bien, je donne le morceau de code.Kindly m'aider, & plz dnt suggérer pour arraylist, bcoz je construis pour l'application blackberry, & blackberry api ne supporte pas arraylist ou collection ou hashset, alors veuillez me suggérer avec tableau seulement dans le morceau de code.comment générer de manière aléatoire un numéro unqiue à partir d'un tableau en Java

Random rgen = new Random(); // Random number generator 

    //--- Initialize the array 
    for (int i=0; i<20; i++) { 
     quesNum[i] = i; 
    } 

// --- lecture aléatoire en échangeant chaque élément au hasard

for (int i=0; i< 20; i++) { 
     int randomPosition = rgen.nextInt(20); 

     int temp = quesNum[i]; 

     quesNum[i] = quesNum[randomPosition]; 

     quesNum[randomPosition] = temp; 


    } 
+0

Pouvez-vous expliquer ce que fait ce code que vous ne voulez pas ou ce que vous voulez que ce code ne fasse pas? –

Répondre

4

Votre code est presque correct comme il est, mais vous devez utiliser un Fisher-Yates shuffle modifié à la place:

for (int i=0; i < 20; i++) { 
    // Partition the array into "shuffled" at the start 
    // and "unshuffled" at the end. Select a random 
    // unshuffled one, and swap it with the one at the 
    // border of shuffled/unshuffled 
    int randomPosition = i + rgen.nextInt(20 - i); 
    int temp = quesNum[i]; 
    quesNum[i] = quesNum[randomPosition]; 
    quesNum[randomPosition] = temp; 
} 

Dans votre question, votre question n'était pas vraiment claire: que vous étiez en train de penser que vous étiez sur la bonne voie? Si cette réponse ne vous aide pas, veuillez clarifier la question (idéalement sans abréviations textuelles).

Questions connexes