Satz Zufallszahlen ohne Wiederholung

Status
Nicht offen für weitere Antworten.

bicpi

Mitglied
Wie krieg ich 40 Zufallszahlen von 0 bis 39 in ein Array, wobei sich keine davon wiederholen darf?

Also durcheinander nicht hintereinander :)
Und bei Neustart eine andere Folge.
 

Reality

Top Contributor
So kriegst du Zufallszahlen:

Code:
int zufall = (int) (Math.random() * 39);

Dann durchläufst du das Array durch. Und wenn keiner der Zahlen übereinstimmt, schiebst du es rein.

Liebe Grüße
Reality
 

Griffin

Bekanntes Mitglied
Also, wenn du 40 Zahlen brauchst UND alle nur von 0 bis 39 UND sie sich nicht wieder holen sollen dann:
Code:
for (int i = 0; i < 40; i++) {
 meinArray[i] = i;
}

Wenn du aber weniger als 40 zahlen hast, dann musst du wirklich das Random benutzen. Und wie Reality schon gesagt hat, überprüfen, ob sich die Zahl bereits im Array befindet.
 

Wildcard

Top Contributor
bicpi hat gesagt.:
Wie krieg ich 40 Zufallszahlen von 0 bis 39 in ein Array, wobei sich keine davon wiederholen darf?

Also durcheinander nicht hintereinander

Griffin hat gesagt.:
Also, wenn du 40 Zahlen brauchst UND alle nur von 0 bis 39 UND sie sich nicht wieder holen sollen dann:

Code:
for (int i = 0; i < 40; i++) { 
meinArray[i] = i; 
}


Würd mal sagen das war nicht ganz Sinn der Sache :wink:
 

bicpi

Mitglied
Genau, sie müssen ja durcheinander sein :)
Und der entscheidende Punkt ist, wie ich prüfe ob sie schon im Array ist, mit den random Sachen komm ich schon ganz gut klar, aber da ich vom seichten PHP her komme weiss ich (noch) nicht so schöne Array-Funktionen wie in_array() oder so, die mich testen lassen, ob die Zahl schon drinne ist.

// EDIT: oder so eine herrliche foreach Schleife oder so :)
 

SebiB90

Top Contributor
ich glaub es gibt sowas ähnliches wie in_array() nicht
array per for schleife durch laufen und jedes element überprüfen
 

bicpi

Mitglied
Hab ich gar nicht Wildcard, ich hab mich nur daran grad so festgebissen, da die Schleife, die ich dort fand
Code:
int[] zahlen = new int[6]; 
int x = 0; 

for (int i=0; i<zahlen.length; i++){ 
    do{ 
        x= (int)(Math.random()*49)+1; 
        boolean drin = false; 
        for (int j=0; j<zahlen.length;j++){ 
            if (zahlen[j] == x){ 
                drin = true; 
                break; 
            } 
        } 
    } while(drin); 
    zahlen[i] = x; 
}

eich genau das richtige ist, nur produziert sie bei mir im letzten Durchlauf eine endlos-Schleife, so dass ich da grad so drinhing, Sorry :)
 

L-ectron-X

Gesperrter Benutzer
Ich habe mal just for fun eine Klasse geschrieben, die etwas mehr kann als nur Zufallszahlen auszugeben. Das was bicpi sucht ist jedenfalls möglich.
Zwar deckt sie nur den Integer-Bereich ab, aber das sollte für viele Anwendungsgebiete ausreichen.
Code:
import java.util.*;

public class Zufallszahlen {
   private boolean duplikateErlaubt;
   private int anzahl, bereichVon, bereichBis;
   private int[] zahlen;

   public Zufallszahlen(int anzahl, boolean duplikateErlaubt, int bereichVon, int bereichBis) {
      if(bereichBis - bereichVon < anzahl && !duplikateErlaubt) {
         System.out.println("Fehler: Die Parameter lassen keine Erzeugung von Zufallszahlen zu!");
         System.out.println("Vergoessern Sie den Wertebereich, verringern Sie die Anzahl der zu\nerzeugenden Zufallszahlen oder lassen Sie Duplikate zu.");
         System.exit(1);
      }
      else {
         zahlen = new int[anzahl];
         this.duplikateErlaubt = duplikateErlaubt;
         this.bereichVon = bereichVon;
         this.bereichBis = bereichBis + 1;
         System.out.println("Ermittlung von "+anzahl+" Zufallszahlen zwischen einschliesslich "+bereichVon+" und "+bereichBis+".");
         if(duplikateErlaubt)
            System.out.println("Dabei sind Duplikate erlaubt.");
         else
            System.out.println("Dabei sind Duplikate nicht erlaubt.");
         zufall();
      }
   }
   
   //Zufallszahlen entsprechend der Vorgaben ermitteln
   private void zufall() {
      int nummero = 0;
      int zahl = 0;
      
      while(nummero < zahlen.length) {
         zahl = (int)(Math.random() * bereichBis);
         if(zahl < bereichVon)
            continue;
         else {
            zahlen[nummero] = zahl;
            if(!duplikateErlaubt) {
               for(int i = 0; i < nummero; i++) {
                  if(zahlen[i] == zahl)
                     nummero--;
               }
            }
         }
         nummero++;
      }
   }
   
   //Zufallszahlen aufsteigend sortieren
   public void sortieren() {
      Arrays.sort(zahlen);
   }
   
   //Textausgabe der Zufallszahlen auf der Console
   public void ausgeben() {
      for(int i = 0; i < zahlen.length; i++)
         System.out.print(zahlen[i]+"  ");
      System.out.println();
   }
   
   //Die Zufallszahlen in einem Array an den Aufrufer zurück geben
   public int[] zurückgeben() {
      return zahlen;
   }
   
   public static void main(String[] args) {
      //Ein kleiner Test
      Zufallszahlen z = new Zufallszahlen(10, false, 10, 50);
      z.ausgeben();
      z.sortieren();
      z.ausgeben();

   }
}
Allerdings klingt das was bicpi vor hat eigentlich nur nach "Mische die Zahlen von 0 bis 39".
Auch das ist mit dem Programm möglich.
 

Wildcard

Top Contributor
Find ich ne gute Idee.
Kann man vieleicht irgendwo bei FAQ oder so unterbringen.
Werden dir bestimmt einige Leute sehr dankbar sein. :toll:
 

L-ectron-X

Gesperrter Benutzer
hehe, ja (noch) nicht so sehr.
Aber vielleicht schreibst Du ja mal ein passendes Beispiel. So kann ich ja auch noch was lernen. :wink:
 

Reality

Top Contributor
He, nö. Bin doch (noch) nicht so gut darin. ;)
Weiss nur, dass man class Bla<T extends Number> machen muss, damit das auch eine Number-Klasse wie Integer oder Double sein muss, die instantiiert wird.

Liebe Grüße
Reality
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
U Kann man bei Java gleich mehrere Bedingungen prüfen in der If, aber in einem "Satz"? Java Basics - Anfänger-Themen 1
K mit String.splitt(",") ganzen Satz erhalten? Java Basics - Anfänger-Themen 3
Z Satz aufteilen und die Wörter zählen (HashMap) Java Basics - Anfänger-Themen 15
V Erste Schritte Vokale im Satz ersetzen Java Basics - Anfänger-Themen 20
O Großbuchstaben im Satz zählen Java Basics - Anfänger-Themen 6
D Vokale auslesen in Satz Java Basics - Anfänger-Themen 7
L Wertebereich if-Satz angeben (z.B: Benzinverbrauch 51 <=75<) Java Basics - Anfänger-Themen 1
U Primfaktorzerlegung m. kleinem Fermat-Satz Java Basics - Anfänger-Themen 4
C Stringeingabe: kein Satz wegen Leerzeichen möglich Java Basics - Anfänger-Themen 3
T Erste Schritte Eingelesenen Satz - Wörter und Leerzeichen getrennt in 2x Array's Java Basics - Anfänger-Themen 7
D Satz des Pythagoras Java Basics - Anfänger-Themen 30
H Satz abkürzen Java Basics - Anfänger-Themen 13
S Satz des Pythagoras Java Basics - Anfänger-Themen 9
S ein Satz aus einer Datei in eine andere Datei Speichern? Java Basics - Anfänger-Themen 5
H Zufallszahlen generieren Java Basics - Anfänger-Themen 5
H 36 Zufallszahlen die sich nicht wiederholen Java Basics - Anfänger-Themen 27
J Zufallszahlen generieren und Werte vergleichen Java Basics - Anfänger-Themen 3
S Hilfe : Unendlich viele Zufallszahlen erstellen? Java Basics - Anfänger-Themen 8
J Fehler beim generieren von 4 Zufallszahlen Zahl doppelt ist eigentlich ausgeschlossen Java Basics - Anfänger-Themen 9
S Aus gleichverteilte Zufallszahlen normalverteilte Zufallszahlen generieren ? Java Basics - Anfänger-Themen 1
N Array mit Zufallszahlen und Divison Java Basics - Anfänger-Themen 7
A Mit Rekursion Zufallszahlen erstellen und größte finden Java Basics - Anfänger-Themen 5
S Schiffe versenken - Zufallszahlen in einem Array Java Basics - Anfänger-Themen 6
A Dreidimensionales Array mit Zufallszahlen befüllen Java Basics - Anfänger-Themen 18
J Klassen Math && Random: wie zufällig sind Zufallszahlen? Java Basics - Anfänger-Themen 19
T Methoden HashSet Objekt mit Zufallszahlen befüllen Java Basics - Anfänger-Themen 3
L Array-Problem/Zufallszahlen Java Basics - Anfänger-Themen 7
V Array mit Zufallszahlen - Anfänger - Hilfe Java Basics - Anfänger-Themen 12
B Zufallszahlen ohne Wiederholung Java Basics - Anfänger-Themen 10
D Array mit Zufallszahlen, dann sortieren: Hilfe gesucht! Java Basics - Anfänger-Themen 1
B Zufallszahlen unabhängig von Intervallen Java Basics - Anfänger-Themen 2
J Ungerade Zufallszahlen in JAVA Java Basics - Anfänger-Themen 31
B Zufallszahlen & Laufzeitmessung (insertionSort) Java Basics - Anfänger-Themen 7
W Zufallszahlen Java Basics - Anfänger-Themen 3
R Arrays Zufallszahlen Java Basics - Anfänger-Themen 10
W 10x10 Feld mit Zufallszahlen erstellen Java Basics - Anfänger-Themen 4
B Array erstellen,ausgeben,mit zufallszahlen füllen aber wie ? Java Basics - Anfänger-Themen 1
T Zufallszahlen von x bis 80 Java Basics - Anfänger-Themen 10
P Zufallszahlen ohne zahlen einer List Java Basics - Anfänger-Themen 21
K Keine doppelten Zufallszahlen im Array Java Basics - Anfänger-Themen 17
G Zufallszahlen Gewichten Java Basics - Anfänger-Themen 3
J Zufallszahlen Häufigkeit Java Basics - Anfänger-Themen 8
L 6stellige Zufallszahlen erzeugen & auf einzigartigkeit prüfen Java Basics - Anfänger-Themen 3
W Java 2 Teams mit Zufallszahlen Java Basics - Anfänger-Themen 2
R Keine doppelten Zufallszahlen Java Basics - Anfänger-Themen 2
F Array mit Zufallszahlen sortieren Java Basics - Anfänger-Themen 7
G Methoden BigInteger Zufallszahlen erzeugen Java Basics - Anfänger-Themen 5
X write() und Zufallszahlen Java Basics - Anfänger-Themen 2
L Zufallszahlen addieren Java Basics - Anfänger-Themen 6
J Mehrere Zufallszahlen erzeugen, aber keine darf doppelt erzeugt werden - Wie? Java Basics - Anfänger-Themen 5
T Problem mit Zufallszahlen Java Basics - Anfänger-Themen 2
T Matrizzen addition mit zufallszahlen Java Basics - Anfänger-Themen 10
E Zufallszahlen Java Basics - Anfänger-Themen 7
R Probleme mit Zufallszahlen Java Basics - Anfänger-Themen 10
K Datentypen Gleiche Zufallszahlen in verschiedenen Datenstrukturen Java Basics - Anfänger-Themen 6
C Zufallszahlen mit Arrays Java Basics - Anfänger-Themen 8
P Array mit Zufallszahlen von einem Wuerfel Java Basics - Anfänger-Themen 15
B Zufallszahlen in ein Array eintragen. Java Basics - Anfänger-Themen 7
P Zufallszahlen fuer Lotto generieren Java Basics - Anfänger-Themen 28
L Hilfe, doppelte Zufallszahlen Java Basics - Anfänger-Themen 13
S Wie Zufallszahlen in txt speichern? Java Basics - Anfänger-Themen 4
K zufallszahlen in Array Speichern = Nullpointer exception Java Basics - Anfänger-Themen 24
F Aus Regulären Ausdrücken Zufallszahlen bilden Java Basics - Anfänger-Themen 6
M Zufallszahlen mit Random Java Basics - Anfänger-Themen 4
S Summe von Zufallszahlen Java Basics - Anfänger-Themen 9
B Zufallszahlen Java Basics - Anfänger-Themen 5
M Zufallszahlen aus einem bestimmten Intervall Java Basics - Anfänger-Themen 5
N Normalverteilte Zufallszahlen mit benutzerdefiniertem/r EW/Var Java Basics - Anfänger-Themen 5
C Zufallszahlen Problem Java Basics - Anfänger-Themen 6
C Zufallszahlen Java Basics - Anfänger-Themen 3
C Frage zur Generierung von Zufallszahlen Java Basics - Anfänger-Themen 9
W Zufallszahlen für Array Java Basics - Anfänger-Themen 3
G Problem mit Zufallszahlen Java Basics - Anfänger-Themen 6
G Zufallszahlen die alles einmal vorkommen Java Basics - Anfänger-Themen 15
G Lotto Zufallszahlen zählen Java Basics - Anfänger-Themen 3
A Zufallszahlen generieren Java Basics - Anfänger-Themen 2
A Problem mit dem Zufallszahlen-Generator Java Basics - Anfänger-Themen 17
J Zufallszahlen einmalig ausgeben Java Basics - Anfänger-Themen 6
B Int Array mit Zufallszahlen füllen Java Basics - Anfänger-Themen 8
G Zufallszahlen ohne doppelten Wert Java Basics - Anfänger-Themen 5
R Zufallszahlen mit Java Java Basics - Anfänger-Themen 11
N Zufallszahlen wiederholungslos erzeugen Java Basics - Anfänger-Themen 8
G Zufallszahlen erraten Java Basics - Anfänger-Themen 8
K zufallszahlen int / double, gerade / ungerade problem . Java Basics - Anfänger-Themen 2
X Lotto Zufallszahlen mit ArrayList erstellen Java Basics - Anfänger-Themen 3
M Zufallszahlen fertig! aber nice to have noch offen Java Basics - Anfänger-Themen 5
M generierung von zufallszahlen Java Basics - Anfänger-Themen 4
B Zufallszahlen erzeugen die nicht gleich sind ;/ Java Basics - Anfänger-Themen 10
M Zufallszahlen Java Basics - Anfänger-Themen 3
G Zufallszahlen Java Basics - Anfänger-Themen 4
N ganzzahlige Zufallszahlen Java Basics - Anfänger-Themen 13
B Zufallszahlen je einmal in Array einfügen Java Basics - Anfänger-Themen 4
H Zufallszahlen Java Basics - Anfänger-Themen 2
J Delay erzeugen, ohne Programm zu blockieren Java Basics - Anfänger-Themen 7
P Main Methode scheint Constructor aufzurufen, ohne dass es so gecoded ist Java Basics - Anfänger-Themen 2
iAmFaiinez Primzahlen Tester ohne Array Java Basics - Anfänger-Themen 4
V JSON-Objs aus JSON-Obj filtern und löschen (Manipulation ohne Kenntnis der vollst. Struktur) Java Basics - Anfänger-Themen 12
O HashTable kann ohne Performance-Verlust in Multithreaded-Anwendungen eingesetzt werden. Java Basics - Anfänger-Themen 6
T Mehrere if bedingungen ohne & Java Basics - Anfänger-Themen 2
M methode aufrufen ohne parameter Java Basics - Anfänger-Themen 1

Ähnliche Java Themen

Neue Themen


Oben