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