Der Code, den ich zuvor geschrieben habe, wurde verbessert. Als Verbesserungspunkt
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;
//Speichern Sie die Nummer, die Sie ausschließen möchten
Set exSet = new HashSet();
exList.add(2);
exList.add(5);
exList.add(8);
do {
i = Interger.valueOf(rand.nextInt(10)+1); // 1~Generieren Sie Zufallszahlen bis 10 und konvertieren Sie sie in eine Zeichenfolge
} while (exSet.contains(i)); //Wiederholen Sie diesen Vorgang, wenn eine der Nummern in der Ausschlussliste übereinstimmt
System.out.println(i);
}
}
Hier ist der Code vor der Verbesserung
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;
//Speichern Sie die Nummer, die Sie ausschließen möchten
List<String> exList = new ArrayList<String>();
exList.add("2");
exList.add("5");
exList.add("8");
do {
i = String.valueOf(rand.nextInt(10)+1); // 1~Generieren Sie Zufallszahlen bis 10 und konvertieren Sie sie in eine Zeichenfolge
} while (exList.contains(i)); //Wiederholen Sie diesen Vorgang, wenn eine der Nummern in der Ausschlussliste übereinstimmt
System.out.println(i);
}
}
Ich habe auch einen Weg gefunden, Zufallszahlen auszuschließen, mit Ausnahme bestimmter Zahlen, die auf QS-Websites in Übersee gefunden wurden. Ich werde es als Referenz posten.
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,Wenn eine Zufallszahl von 7 erzeugt wird, wird der Wert von 7 erfasst, so dass die Häufigkeit des Auftretens nur für 7 hoch ist.
Recommended Posts