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