• Wir präsentieren Dir heute ein Stellenangebot für einen Java Entwickler - m/w/d in Augsburg, München, Stuttgart oder Bamberg. Hier geht es zur Jobanzeige

Wie kontrolliere ich ob ich die Zahl in meinem Array schon hab?

K

KeinPlan404

Mitglied
Ich erstelle Zahlen von 1-25 zufällig her und lasse die dann in einem Array Speichern.
Wie schaffe ich jetzt, das die zahlen NICHT doppelt vorkommen und sich dann auf eine andere Zahl verändern, die es noch nicht gibt.
Bitte ich brauche ein Quelltext bespiel ich krieg das nicht hin und bin schon 3 stunden am suchen und rumprobieren.

Zufallszahlen werden im Array gespeichert:
speicher = new int[11];
        for(int i=0;i<11;i++)
            speicher[i] = (int)(Math.random()*25)+1;
 
kneitzel

kneitzel

Top Contributor
Also bei sowas hilft aus meiner Sicht immer:
a) Genau überlegen, wie das läuft. Dazu einfach überlegen, wie es mit Stift und Papier gehen würde.
b) Unterteile das komplexe Problem in viele kleine Probleme, die einfach zu lösen sind.

Bezüglich a) müsstest Du Dir halt überlegen, wie Du vorgehen willst, wenn Du einen Würfel mit 25 Seiten hast und du 11 Unterschiedliche Würfe aufschreiben sollst.
 
K

KeinPlan404

Mitglied
Ja, das sehe ich auch auf jeder anderen Seite stehen. Trotzdem weiß ich nicht wie ich das umsetzen soll...
 
K

KeinPlan404

Mitglied
Wenn ich ein Array hab und da 25 Nummern reinschreibe also von 1-25. Wie kann ich das Array dann durchwürfeln, so das ich 11 verschiedene Zahlen habe ?
 
kneitzel

kneitzel

Top Contributor
Ich wiederhole mich einfach noch einmal:
Du hast:
- Einen Zettel, auf den Du 11 Zahlen schreiben kannst
- Einen 25 Seitigen Würfel

Du sollst nun würfeln bis du 11 unterschiedliche Zahlen aufgeschrieben hast.

Würdest Du das hin kriegen? Wenn ja: Wie?

Wenn ich ein Array hab und da 25 Nummern reinschreibe also von 1-25. Wie kann ich das Array dann durchwürfeln, so das ich 11 verschiedene Zahlen habe ?
Da kommt ggf. eine andere Herangehensweise zum tragen. Das wäre dann ähnlich wie Lotto-Spielen: Du hast eine Menge von Kugeln (Array mit den Zahlen von 1 bis 25) und du ziehst eine. Dann entfällt diese Kugel und du ziehst bei den verbleibenden Kugeln die nächste ... das dann 11 mal ...

Aber das ist nicht das vorgehen, das ich in #1 gesehen habe, denn da hattest Du nur ein Array mit den Zielen und kein Array mit den möglichen Werten ...
 
M

M.L.

Top Contributor
Eine "zu-Fuss-Methode" wäre, das bisher befüllte Array (intern) der Grösse nach zu sortieren, dessen aktuelle Länge zu ermitteln, und in einer Schleife (+ Algorithmus) zu kontrollieren, ob ein neu einzutragender Zufallswert schon im Array vorkommt. Das dauert mit steigender Arraygrösse immer weiter an und selbst mit dem Würfel mit 25 Seiten kann man Werte öfter würfeln als zu erwarten wäre... Schneller geht es mit einer Suchmaschine @ "java random array no duplicates", z.B.: https://www.tutorialspoint.com/java-program-to-generate-random-numbers-with-no-duplicates
 
kneitzel

kneitzel

Top Contributor
Also ein Array zu sortieren ist nicht einmal notwendig.

Es ist ja kein Problem, da entsprechend vorzugehen:
So lange man nicht die gewünschte Anzahl an Werten hat:
- würfelt man eine Zahl.
- man geht alle bereits notierten Zahlen durch und prüft, ob die neu gewürfelte dabei war. Ist das nicht der Fall, dann notiert man die Zahl.

Die Problematik, dass man ggf. lange würfeln muss, kann man umgehen:

a) ich mache ein Array mit der Anzahl der möglichen Zahlen und schreibe dann in jedes Feld eine Zahl. Dann mische ich die Werte (hier kann man sich frei überlegen, wie man das machen könnte) und nehme einfach die ersten x Zahlen.

b) ich mache erneut ein Array wie zuvor. Dann würfel ich mir die x Zahlen, indem ich für jedes x:
1. Eine Zufallszahl von 0...n-x Würfel.
2. Den Inhalt von dem Feld mit Index der Gewürfelten Zahl mit dem Feld mit Index n-x tauschen
Am Ende habe ich die x Zufallszahlen am Ende des Arrays.

Das wären dann 3 mögliche Vorgehen in knappen Worten erläutert. Die erste Methode scheint mir relativ einfach umzusetzen sein...
 
T

Trjavnamen

Bekanntes Mitglied
Eine Schleife wird solange durchlaufen bis 25 unterschiedliche zahlen enstehen. darin enhalten eine schleife die erst hochzählt( wenn eine neue Zahl enstanden ist) die die position des arrays bestimmt wo der nächste Array hingesezt wird und sonst nicht. Darin enthalten eine schleife die die erzeugte zahl mit den Anzahl der schon besetzten positionen des Arrays vergleicht um festzustellen ob diese zahl vorhanden ist solange bis eine neue zahl entstanden ist und einträgt sonst nicht und die entstandene zahl löscht und eine neue Zahl in auftrag gibt.
 
mihe7

mihe7

Top Contributor
Das wären dann 3 mögliche Vorgehen in knappen Worten erläutert
Wobei ich b) jetzt als eine Form des Mischens sehen würde, bei der man sich auf x Zahlen beschränkt. Dass die Zahlen am Ende stehen, kann man leicht ändern, indem man die Zufallszahl aus dem Intervall [i,n[ wählt und mit i tauscht.
 
kneitzel

kneitzel

Top Contributor
Wobei ich b) jetzt als eine Form des Mischens sehen würde, bei der man sich auf x Zahlen beschränkt. Dass die Zahlen am Ende stehen, kann man leicht ändern, indem man die Zufallszahl aus dem Intervall [i,n[ wählt und mit i tauscht.
Ja, das ist richtig, streng genommen ist es nur eine spezielle Form des Mischens und die beschriebene Technik ist eine Möglichkeit, wie man ein Mischen implementieren könnte ...
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Algorithmus (reelle Zahl <65536 von dezimal zu dual) max. 10 Nachkommastellen Java Basics - Anfänger-Themen 4
T Zahl in Array ersetzen Java Basics - Anfänger-Themen 2
Abraham42 Prozentsatz einer Zahl mehrmals Java Basics - Anfänger-Themen 2
C Größte Zahl aus einem Array ermitteln(als statische Methode) Java Basics - Anfänger-Themen 31
Kingamadeus2000 Anzahl der Ziffern der kürzesten Zahl aus einem zurückliefern Java Basics - Anfänger-Themen 1
V Beliebige Dreistellige Zahl Teiler finden Java Basics - Anfänger-Themen 4
newcomerJava Nach doppelter Zahl eine Ausgabe Java Basics - Anfänger-Themen 10
W Random Zahl unter Berücksichtung eines Durchschnitts Java Basics - Anfänger-Themen 7
S Zahl eingeben Java Basics - Anfänger-Themen 8
A Java . punkt neben einer Zahl. Java Basics - Anfänger-Themen 1
F Eine Zahl mit Arrays vergleichen Java Basics - Anfänger-Themen 7
J Die größte Zahl anzeigen Java Basics - Anfänger-Themen 19
V Array auf eine Zahl durchsuchen Java Basics - Anfänger-Themen 15
X Nach einem Bruch testen ob es eine ganze Zahl ist Java Basics - Anfänger-Themen 6
L Erhöhung der Zahl Java Basics - Anfänger-Themen 3
F Negative Zahl erzwingen Java Basics - Anfänger-Themen 3
N Eine Zahl solange teilen bis es nicht möglich ist und die Ergebnisse ausgeben Java Basics - Anfänger-Themen 23
T Eulersche Zahl e Java Basics - Anfänger-Themen 5
S Letzte Zahl eines Integer auslesen? Java Basics - Anfänger-Themen 3
G Programm schreiben: Zahl (n) eingeben, 1+1/n+2/n+3/n+....+n/n Java Basics - Anfänger-Themen 8
B Eine ganze Zahl zerlegen. Java Basics - Anfänger-Themen 4
J Fehler beim generieren von 4 Zufallszahlen Zahl doppelt ist eigentlich ausgeschlossen Java Basics - Anfänger-Themen 9
H Harshad-Zahl (Nivenzahl) und Palindrom überprüfen Java Basics - Anfänger-Themen 2
I Wie viele 1 an Bits hat die Zahl x? Java Basics - Anfänger-Themen 5
A Gewürfelte Zahl ausgeben Java Basics - Anfänger-Themen 10
M Rationale Zahl erkennen - Kurze Frage zum Restwert nach Division Java Basics - Anfänger-Themen 3
A Überprüfen, ober eine Zahl Ziffer enthält Java Basics - Anfänger-Themen 12
O Markoff-Zahl Java Basics - Anfänger-Themen 22
B Datenbank, aktuelle Ende als Zahl an Label übergeben Java Basics - Anfänger-Themen 7
L 10-Stellige Zahl hochzählen lassen Java Basics - Anfänger-Themen 1
H String und Zahl Java Basics - Anfänger-Themen 10
R Zahl 1 bis 100 erraten Java Basics - Anfänger-Themen 12
Y Konkrete Hilfe gesucht - Anzahl der Stellen einer eingegebenen Zahl überprüfen Java Basics - Anfänger-Themen 5
J Button klick bei eine bestimmten Zahl Java Basics - Anfänger-Themen 8
B Zahl in String abspeichern und später berechnen Java Basics - Anfänger-Themen 15
H OOP eine Zahl immer weiter durch 2 teilen Java Basics - Anfänger-Themen 15
J Für jeden Buchstaben eine Zahl Java Basics - Anfänger-Themen 1
H Würfelspiel, stop bei gleicher Zahl Java Basics - Anfänger-Themen 4
B Array - die Häufigkeit der Zahl zählen Java Basics - Anfänger-Themen 9
I Erste Schritte Testen, ob eine Zahl eine Primzahl ist Java Basics - Anfänger-Themen 8
J Rekursive Methode - Ziffern einer Zahl ausgeben Java Basics - Anfänger-Themen 2
I Eulersche Zahl Java Basics - Anfänger-Themen 6
F Produkt d. Ziffern einer Zahl..?! Java Basics - Anfänger-Themen 5
J Die Zahl herausfinden die durch 2 - 30 Teilbar ist... Java Basics - Anfänger-Themen 17
A Ungeordnetes Array ordnen, Zahl einlesen und einordnen Java Basics - Anfänger-Themen 23
A Rechnen mit Text und Zahl Java Basics - Anfänger-Themen 4
T Datentypen char als Buchstaben statt als Zahl ausgeben Java Basics - Anfänger-Themen 4
S Jede Ziffer einer Zahl auslesen, damit rechnen und beim Ergebnis wiederholen ? Java Basics - Anfänger-Themen 20
H 32-Bit Zahl (Integer) in eine IPv4 Adresse umwandeln? Java Basics - Anfänger-Themen 2
Aprendiendo Gibt es in der JAVA-API eine Funktion, die eine Dezimalzahl in eine binäre Zahl umwandelt? Java Basics - Anfänger-Themen 8
M Mit 2 Threads eine Zahl hochzählen Java Basics - Anfänger-Themen 13
D String erste Zahl mit LKZ auslesen lassen Java Basics - Anfänger-Themen 36
C Erste Ziffer einer Zahl Java Basics - Anfänger-Themen 46
M Zeilenumbruch ab der 10. Zahl Java Basics - Anfänger-Themen 11
T Input/Output Int Eingabe auf Zahl überprüfen Java Basics - Anfänger-Themen 30
R Input/Output zahl aus showInputDialog() Java Basics - Anfänger-Themen 25
D Die Zahl in der Mitte finden Java Basics - Anfänger-Themen 20
S Rekursives Zählen einer Zahl Java Basics - Anfänger-Themen 8
F Abfrage ob Eingabe eine Zahl ist Java Basics - Anfänger-Themen 3
K alle Vorkommen einer bestimmten Ziffer in einer Zahl zählen Java Basics - Anfänger-Themen 2
kilopack15 Größte zahl eines Arrays finden Java Basics - Anfänger-Themen 1
P Zahl genauer als 20 nachkommastellen Java Basics - Anfänger-Themen 4
J Wie lege ich eine durch Random ausgesuchte Zahl in ein Array? Java Basics - Anfänger-Themen 3
F Erste Schritte Random Zahl auswählen Java Basics - Anfänger-Themen 7
GreenTeaYT Variable speichert nicht die korrekte Zahl ein Java Basics - Anfänger-Themen 12
T Algortihmus: Kürzeste Folge zu einer Zahl Java Basics - Anfänger-Themen 40
Y Zahl im String hochzählen Java Basics - Anfänger-Themen 13
J Erste Schritte Scanner negative zahl einlesen und verwenden. Java Basics - Anfänger-Themen 6
K Hochzählen einer "Zahl" Java Basics - Anfänger-Themen 4
S zahl hoch und runter zählen per button Java Basics - Anfänger-Themen 25
L Eine Zahl in Binärdarstellung ausgeben Java Basics - Anfänger-Themen 10
P Methoden Arrays.AsList kleinste Zahl ausgeben Rekursiv Java Basics - Anfänger-Themen 9
T Bitte um Hilfe bei Aufgabe: Long zahl = Long.parseLong(args [0]); Java Basics - Anfänger-Themen 3
K Methoden Approximation der eulerschen Zahl Java Basics - Anfänger-Themen 17
W Wie kann man folgenden Code abändern, dass er den Score mit Zahl anzeigt? Java Basics - Anfänger-Themen 3
E String bestehend aus Ziffern in Zahl verwandeln Java Basics - Anfänger-Themen 3
J Überprüfen ob String eine Zahl ist Java Basics - Anfänger-Themen 2
D Input/Output Buchstaben als bestimmte Zahl erkennen Java Basics - Anfänger-Themen 4
F Zeiteinheit auf ganze Zahl runder runden Java Basics - Anfänger-Themen 4
E Zahl umdrehen? Java Basics - Anfänger-Themen 21
D Java doppelte Zahl/Zeichen in einem String entfernen Java Basics - Anfänger-Themen 6
Q Scanner auf eine Zahl beschränken Java Basics - Anfänger-Themen 2
S Programm zum Einlesen einer Zahl und Ausgabe der Wurzel Java Basics - Anfänger-Themen 13
I kleinste Ziffer einer Zahl ausgeben Java Basics - Anfänger-Themen 3
W String Array in Int umwandeln um auf Zahl zu überprüfen Java Basics - Anfänger-Themen 4
N InsertionSort sortiert erste Zahl im Array nicht mit? Java Basics - Anfänger-Themen 6
S Zahl an bestimmter Stelle splitten Java Basics - Anfänger-Themen 6
S Funktion die mir fuer einen String eine Zahl zwischen 0.0 und 1.0 zurueckliefert..? Java Basics - Anfänger-Themen 9
E Eulersche Zahl berechnen, Endlosschleife Java Basics - Anfänger-Themen 2
B Teile eines Strings in Zahl umwandel und damit weiterrechnen? Java Basics - Anfänger-Themen 3
B Summe aller Zahlen von 1 bis zu dieser Zahl (ohne while oder for schleife) Java Basics - Anfänger-Themen 4
I Höchste Zahl berechnen die eine Eingabe ohne Rest teilt und eine Primzahl ist Java Basics - Anfänger-Themen 2
K Von einem Double wert nur die Zahl vor dem Komma verwenden Java Basics - Anfänger-Themen 9
T Ein String eine Zahl zuweisen Java Basics - Anfänger-Themen 15
M Double Zahl in Grad Zahl Java Basics - Anfänger-Themen 7
P Fakultät aus Zahl bilden Java Basics - Anfänger-Themen 5
T Die am häufigsten enthaltene Zahl eines Arrays liefern Java Basics - Anfänger-Themen 2
R String Zahl um 1 dekrementieren Java Basics - Anfänger-Themen 12
llabusch Operatoren Methode um eine Zahl zu quadrieren Java Basics - Anfänger-Themen 1
D Zahl in einem String finden Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Anzeige

Neue Themen


Oben