2017-06-12 6 views
-3

Ich möchte 20 Zufallszahlen zwischen 1 und 50 ohne doppelte Zahlen erzeugen und in einem Array speichern.Zufallszahl ohne Duplizierung generieren

Zum Beispiel wenn Knopf klicken Sie eine Zufallszahl erzeugen wie 5 speichert es in Array dann wenn wieder klicken Sie auf Knopf und eine weitere Zufallszahl generieren, wenn diese Zufallszahl in Array verfügbar ist, dann generieren ein anderes und stimmen mit Array wenn diese Zufallszahlen ist nicht da, dann in Array speichern.

Ich möchte einige einfache Code, einige Code sind auf dieser Website verfügbar, aber ich kann diese Codes nicht verstehen. Und ich benutze Java 8 und eclipse Oxygen.

ich diesen einfachen Code verwenden zur Erzeugung von Zufallszahlen

Random rand=new Random(); 
    i=1; 
    i=1+rand.nextInt(8); 
+3

„Ich möchte einige einfache Code, ein Code sind auf dieser Website zur Verfügung, aber ich kann diese Codes nicht verstehen.“ Warum also nicht auf die relevante Frage verlinken und angeben, was Sie in diesem Code nicht verstehen? Es macht keinen Sinn, die gleiche Frage noch einmal zu stellen - Sie werden wahrscheinlich die gleiche Art von Code bekommen, die Sie immer noch nicht verstehen, nachdem Sie die Zeit der Leute vergeudet haben ... –

+0

Stackoverflow ist für die Bereitstellung von Lösungen für Probleme, es ist kein Code-Schreibdienst. Wenn Sie einen einfachen Code möchten, mieten Sie jemanden, der es für Sie schreibt. Ich berechne 80 € pro Stunde. –

+0

aber ich bin im Moment nicht verfügbar. –

Antwort

2

Sie Zufallszahl ohne Doppel erzeugen können durch eine Reihe von immer mehr zu erzeugen und schlurfenden es dann.

0

Sie können eine Zufallszahl generieren, in einem Array speichern und jede neue Zahl auf diesem Array überprüfen. Dies könnte Ihren Prozess verlangsamen.

Solange ein Array mit 50 Ganzzahlen nicht Ihren gesamten Speicher füllt, können Sie int[50] witch Ganzzahlen von 1 bis 50 erstellen und das zufällig ausgewählte Array-Element entfernen (oder ein neues Array erstellen). Es wird keine gute Leistung liefern, aber es scheint, dass dies nicht wirklich wichtig ist.

-2

Try somenthing wie folgt aus:

private List<Integer> numbers = new ArrayList<Integer>(); 

private Integer generate() { 
    Random rand = new Random(); 
    int aux; 
    do { 
     aux = rand.nextInt(49) + 1; // Random numbers in between 1 and 50 
    } while (numbers.contains(aux)); // Prevents duplication 
    return aux; 
} 

public void btnClick() { 
    if (numbers.size() < 20) { // Limits to 20 numbers 
     numbers.add(generate()); // Store in an list 
    } 
} 
Verwandte Themen