[Java] Comment obtenir des nombres aléatoires en excluant des nombres spécifiques

9/13 mise à jour

Amélioration du code que j'ai écrit plus tôt. Comme point d'amélioration --Utilisation de Set au lieu de List pour réduire le nombre de tentatives

main.java


import java.util.Random;
import java.util.HashSet;

public class Main {
 
    public static void main(String[] args) {
        Random rand = new Random();
        int i;
        //Enregistrez le numéro que vous souhaitez exclure
        Set exSet = new HashSet();
        exList.add(2);
	    exList.add(5);
	    exList.add(8);
		
		do {
			i = Interger.valueOf(rand.nextInt(10)+1); // 1~Générez des nombres aléatoires jusqu'à 10 et convertissez-les en chaîne
		} while (exSet.contains(i)); //Répétez s'il correspond à l'un des numéros de la liste d'exclusion
		System.out.println(i);
    }
}

Voici le code avant amélioration

main.java


import java.util.ArrayList;
import java.util.Random;

public class Main {
 
    public static void main(String[] args) {
        Random rand = new Random();
        String i;
        //Enregistrez le numéro que vous souhaitez exclure
        List<String> exList = new ArrayList<String>();
        exList.add("2");
		exList.add("5");
		exList.add("8");
		
		do {
			i = String.valueOf(rand.nextInt(10)+1); // 1~Générez des nombres aléatoires jusqu'à 10 et convertissez-les en chaîne
		} while (exList.contains(i)); //Répétez s'il correspond à l'un des numéros de la liste d'exclusion
		System.out.println(i);
    }
}

J'ai également trouvé un moyen d'exclure les nombres aléatoires en excluant les nombres spécifiques trouvés sur les sites d'assurance qualité à l'étranger. Je le posterai pour référence.

public int getRandomWithExclusion(Random rnd, int start, int end, int... exclude) {
    int random = start + rnd.nextInt(end - start + 1 - exclude.length);
    for (int ex : exclude) {
        if (random < ex) {
            break;
        }
        random++;
    }
    return random;
}

main.java


int[] ex = { 2, 5, 6 };
val = getRandomWithExclusion(rnd, 1, 10, ex)
// 5,6,Lorsqu'un nombre aléatoire de 7 est généré, la valeur de 7 est acquise, de sorte que la fréquence d'occurrence n'est élevée que pour 7.

Recommended Posts

[Java] Comment obtenir des nombres aléatoires en excluant des nombres spécifiques
Comment utiliser HttpClient de Java (Get)
Comment trouver les nombres premiers Java
[Java] Comment obtenir le répertoire actuel
Comment obtenir la date avec Java
Comment obtenir une classe depuis Element en Java
Comment obtenir et étudier Java SE8 Gold
[Java] Comment accéder au début d'une chaîne spécifique à l'aide de la classe String
[Java] Comment obtenir l'URL redirigée finale
[Java] Comment obtenir l'URL de la source de transition
[Java] Comment obtenir la valeur maximale de HashMap
[Java] Comment obtenir une requête par communication HTTP
À partir d'avril 2018 Comment installer Java 8 sur Mac
[Java] Comment effacer un caractère spécifique d'une chaîne de caractères
Comment abaisser la version java
[Java] Comment utiliser Map
Comment désinstaller Java 8 (Mac)
Comment utiliser java Facultatif
Comment réduire les images Java
Comment rédiger un commentaire java
Comment utiliser la classe Java
[Java] Comment utiliser removeAll ()
[Java] Comment afficher les Wingdings
Comment utiliser Java Map
Comment définir des constantes Java
Comment utiliser les variables Java
Comment convertir la base Java
[Java] Comment implémenter le multithreading
Comment initialiser un tableau Java
Comment obtenir le nom d'une classe / méthode exécutée en Java
Une version Java non prise en charge Comment se débarrasser des erreurs
Comment étudier Java Silver SE 8
Comment démarrer avec Slim
Étudier Java # 6 (Comment écrire des blocs)
Comment créer un conteneur Java
Comment désassembler un fichier de classe Java
Comment utiliser HttpClient de Java (Post)
[Java] Comment utiliser la méthode de jointure
Comment obtenir des paramètres dans Spark
[Traitement × Java] Comment utiliser les variables
Comment décompiler un fichier de classe Java
[JavaFX] [Java8] Comment utiliser GridPane
Comment écrire une déclaration de variable Java
Comment utiliser les méthodes de classe [Java]
[Java] Comment utiliser List [ArrayList]
Comment utiliser les classes en Java?
Comment nommer des variables en Java
Comment passer Oracle Java Silver
Comment activer Iterator Dojo (Java)
java Eclips Comment déboguer javaScript
[Traitement × Java] Comment utiliser les tableaux