Les partenaires publicitaires:

Comment générer des nombres aléatoires sans répétition en java

Le langage Java fournit des utilitaires pour générer des nombres aléatoires dans vos programmes. Si vous voulez générer une série de nombres aléatoires, mais ne voulez pas l'un d'eux à être répétée, vous devez utiliser des tests et des boucles conditionnelles. En ajoutant chaque numéro vous générez à un objet de collection de jeu, vous pouvez dire immédiatement si aucun d'entre eux sont des doublons. Si le nombre est un doublon, vous pouvez indiquer à Java de continuer à générer de nouveaux numéros jusqu'à ce qu'il trouve celui que vous ne l'avez pas déjà ajouté à l'ensemble. Le processus implique deux boucles et une instruction conditionnelle.

Instructions

  1. Importez les utilitaires Java nécessaires pour votre génération de nombres aléatoires et objet de jeu. Ajoutez le code suivant en haut de votre déclaration de classe:
    importer java.util. *;

    Créer un objet mis à enregistrer les numéros que vous générez:
    TreeSet myNumbers = new TreeSet ();

    Créer une instance de la classe aléatoire pour générer vos nombres aléatoires:
    Aléatoire RandGen = new Random ();



  2. Créer une boucle pour générer vos nombres aléatoires. La boucle suivante pour exécutera 20 fois:
    for (int i = 0- ILT; 20 i ++) {
    // Génération de nombres ici
    }

    Dans cette boucle, vous pouvez ajouter le traitement pour générer et vérifier vos numéros aléatoires pour les doublons. Modifiez le nombre de 20 pour refléter le nombre total de valeurs aléatoires que vous voulez que votre programme à générer. Dans la boucle, générer un nombre aléatoire:
    int RandNum = randGen.nextInt ();

    Cela exécutera chaque itération de la boucle.




  3. Ajouter une seconde boucle pour faire face aux numéros en double. Ajoutez le code suivant dans votre première boucle après la ligne de génération de nombres:
    de (-) {
    // Accord avec les doublons
    }

    Ceci est une boucle infinie, donc il va exécuter indéfiniment jusqu'à ce que le code rompt explicitement hors de lui. Dans cette boucle, vous pouvez demander à Java de continuer à générer des nombres aléatoires jusqu'à ce qu'il génère un que vous ne l'avez pas déjà utilisé.

  4. Ajouter un test conditionnel sur chaque nombre aléatoire. Insérez le code suivant dans votre boucle infinie:
    if (myNumbers.add (RandNum)) percée
    d'autre RandNum = randGen.nextInt ();

    Lorsque vous essayez d'ajouter un élément à un ensemble, la méthode renvoie vrai ou faux. Si l'élément est pas déjà dans le jeu, il retourne vrai, dans ce cas, votre code peut sortir de la boucle. Si l'élément est déjà dans l'ensemble, la méthode retourne false, dans ce cas, vous pouvez demander à Java de choisir un autre nombre aléatoire. La boucle sera alors exécuter à nouveau, tester la nouvelle valeur pour voir si elle est un duplicata. Ce processus se poursuit jusqu'à ce qu'une nouvelle valeur est trouvée.

  5. Testez votre code. Ajouter la ligne suivante après la boucle infinie, mais encore à l'intérieur de la boucle externe:
    System.out.println (RandNum);

    Cela vous permettra de voir en un coup d'œil que vos numéros sont tous uniques. Enregistrez votre fichier, compiler votre programme et l'exécuter pour le tester. Naviguez à travers la sortie de vérifier que vos fonctions travaillent.

Conseils & Avertissements

  • Vous pouvez générer des nombres aléatoires à l'intérieur d'une certaine plage en passant un paramètre à la "nextInt" Procédé.
  • Si vous générez des nombres dans une certaine fourchette, assurez-vous que votre boucle est pas réglé pour exécuter plus de fois que les valeurs possibles dans cette fourchette.
» » » » Comment générer des nombres aléatoires sans répétition en java