Erstellen einer 4-stelligen Zufallszahl mit Java ohne Wiederholung in Ziffern

8

Ich schrieb einen Code mit Java, um eine zufällige 4-stellige Zahl ohne Wiederholung von Ziffern zu erstellen, der Code, den ich schrieb, ist unten angegeben: -

%Vor%


Hier sind die Testfälle (generiert von System.out.println(R1+""+R2+""+R3+""+R4); ) wie folgt: -

%Vor%


Jetzt ist meine Frage hier, dass, wenn es einen besseren Weg gibt, dies zu tun. Wenn ich es irgendwie verbessern könnte?

    
kakabali 19.08.2013, 15:14
quelle

7 Antworten

16

Erstellen Sie eine Liste von Ganzzahlen von 0 bis 9, mischen Sie sie und extrahieren Sie die ersten 4.

%Vor%

Es gibt einige hässliche Gespräche zwischen den Strings, aber Sie verstehen es. Abhängig von Ihrem Anwendungsfall können Sie sehen, was benötigt wird.

    
Jeroen Vannevel 19.08.2013, 15:18
quelle
5

Ein paar Ansätze:

  1. Verwenden Sie ein Set, um die Ziffern zu halten, und fügen Sie zufällige Ziffern hinzu, bis die Menge vier Werte enthält.

  2. Erstellen Sie ein Array mit den Werten 0-9. Mische das Array und nimm die ersten vier Werte.

Wenn Leistung wichtig ist, sollten Sie einige verschiedene Methoden ausprobieren und sehen, welche schneller ist.

    
Rob 19.08.2013 15:20
quelle
4

Hier ist meine Herangehensweise, obwohl sie viel String-Analyse, aber keine Datenstruktur verwendet:

%Vor%     
MZ4Code 08.10.2013 22:33
quelle
2

Verwenden Sie vielleicht ein Set?

%Vor%     
fred02138 19.08.2013 15:20
quelle
1

Erstellen Sie eine Liste mit Ganzzahl von 0 bis 9 (also insgesamt 10 Einträge)

%Vor%     
Algiz 19.08.2013 15:23
quelle
0

Hier ist meine Lösung, ohne eine zusätzliche Datenstruktur zu verwenden, bei der eine Zufallszahl erzeugt wird, bis sie eindeutige Ziffern hat.

%Vor%     
Juvanis 19.08.2013 15:25
quelle
0

Grob (nicht getestet):

%Vor%

(Nach der Codierung habe ich festgestellt, dass die Inkrement-Operationen modulo 10 durchgeführt werden müssen.)

    
Hot Licks 09.10.2013 21:22
quelle

Tags und Links