Random() gleiche Zahlen ausschließen

bad_killa

Mitglied
hallo,
hab ein kleines problem und zwar möchte ich zufallszahlen in ein array schreiben.
die zahlen sollen zwischen 0-9 sein und dürfen nicht zweimal vorkommen.

Java:
(int)(Math.random() * 10);

bringt mir ja die zufalls zahlen aber wie schließe ich aus das es zweimal oder dreimal die gleiche zahl vorkommt?
 

Lodorvonhal

Mitglied
wie oft willst du den das random ausführen?

ich weis nicht ob es eine Möglichkeit gibt Zahlen auszuschließen.
Ich würde es so machen, das du nach dem Erhalt der Zahl durch das Random einfach vergleichst, ob die Zahl in deinem Array vorhanden ist, wenn ja dann mache weiter : else schreibe in array.

Ist zwar Holzhammer aber egal ^^
 

henpara

Bekanntes Mitglied
Indem zu entweder jedesmal über das Array iterierst und schaust, ob die Zahl schon vorhanden ist, oder indem du die Zahlen erst in eine Collection schreibst und jedesmal schaust, ob die Collection deine gewünschte größe hat. sobald sie die gewünschte größe hat, schreibst du die collection in das array um.
 

bad_killa

Mitglied
das soll der anwender entscheiden können so 3-10 mal also ich möchte damit realisieren das er sich somit aussucht ob er von 10 möglichen fragen 3 bearbeiten möchte oder mehr. damit die frage nicht 2 mal kommt oder dreimal möchte ich es somit ausschließen.
 

henpara

Bekanntes Mitglied
Dann würde ich an deiner Stelle das ganze über ne Collection/Set lösen.
Da kommen nur unterschiedliche zahlen drin vor und über die Mächtigkeit kannst du die maximale Anzahl regeln.

zB das HashSet

lg
 

ARadauer

Top Contributor
hab ein kleines problem und zwar möchte ich zufallszahlen in ein array schreiben.
die zahlen sollen zwischen 0-9 sein und dürfen nicht zweimal vorkommen.
in diesem fall würde ich eine liste von 0-9 machen, mit Collectsions.shuffle mischen und dann einfach mit remove(0) ziehen...
 

bad_killa

Mitglied
die lösung wäre perfekt aber leider soll ich nur dinge benutzen die wir im unterricht gelernt haben und das ist noch nicht über die anfänge hinweg. sprich die ganzen schleifen, abfragen und so kleine dinge.
 

Lodorvonhal

Mitglied
wie oft willst du den das random ausführen?

ich weis nicht ob es eine Möglichkeit gibt Zahlen auszuschließen.
Ich würde es so machen, das du nach dem Erhalt der Zahl durch das Random einfach vergleichst, ob die Zahl in deinem Array vorhanden ist, wenn ja dann mache weiter : else schreibe in array.

Ist zwar Holzhammer aber egal ^^

Dann nimm meinen Ersten Vorschlag. Alles mit einfachen Anweisungen und Schleifen zu realisieren.
Die Ausgabe regelst du über Anzahl der Nutzereingabe


Fertig.
 

Der Müde Joe

Top Contributor
mit boolean array?
Java:
Random random = new Random();
boolean[] used = new boolean[9];
int rdm = random.nextInt (10); //0 -9
used[rdm] = true;
 

bad_killa

Mitglied
habe nun das array befüllt, kann mir nun einer eine unterstützung sagen wie ich prüf das da keine gleichen zahlen drin stehen.

Java:
int auswahl[];
String abfrage;
int anzahl;
      
abfrage = JOptionPane.showInputDialog("Wieviele Fragen möchten Sie beantworten (3-10)?");
anzahl = Integer.parseInt(abfrage);
    
auswahl = new int[anzahl];
    
for(int i=0; i<=(anzahl-1); i++)  //Befüllen des Arrays
{
auswahl[i] = (int)(Math.random() * 10);

wäre für hilfe dankbar bin da noch nicht so gut ;)
 

henpara

Bekanntes Mitglied
Naja du musst vor dem füllen nochmal das Array bis zur aktuellen stufe durchlaufen und gucken ob bei den vorherigen einträgen dein aktueller dabei ist.
 
B

bone2

Gast
Der Müde Joe hat doch eine gute und schnelle lösung vorgeschlagen
ein zweites boolean array erzeugen und eine zahl used true setzen wenn man sie hat. vorm reinschreiben in das ergebnis array überprüfen ob die zahl noch false ist
 

Naaram

Mitglied
Ich glaube man sollte ein LinkedHashSet benutzen ca. so:
Java:
int nBenoetigteZahlen = 5;
LinkedHashSet<Integer> erhalteneZahlen = new LinkedHashSet<Integer>();
while(erhalteneZahlen.size() != nBenoetigteZahlen) {
    erhalteneZahlen.add((int)(Math.random() * 10));
}
 

bad_killa

Mitglied
@ Naaram wie gesagt kann nur des einsetzen was im unterricht schon behandelt wurde.
@der müde joe könntest du mir deine idee etwas näher erklären komme nicht ganz dahinter wie das funktioniert
 

Andi_CH

Top Contributor
Angenommen du hast das Array von boolean;

1. du genierst eine Randomzahl
2. wenn im array der boolen noch nicht gesetzt ist, boolean setzen und gefundene Zahl zurückgeben
3. wenn im array der boolean gesetzt ist goto 1

Aber pass auf - wenn schon alle Zahlen gezogen sind, hängt das - den Fall musst du noch abfangen

--

Was war der Unterschied zwischen Kopfträger und Kopfnutzer schon wieder ? Aua :autsch:
 
B

bone2

Gast
Java:
    public static void main(String args[]) {
        int max = 10;

        String abfrage = JOptionPane.showInputDialog("Wieviele Fragen möchten Sie beantworten (3-" + max + ")?");
        int sollAnzahl = Integer.parseInt(abfrage);
        int istAnzahl = 0;

        if (sollAnzahl > max) sollAnzahl = max;
        if (sollAnzahl < 3) sollAnzahl = 3;

        int[] auswahl = new int[sollAnzahl];
        boolean[] used = new boolean[max];

        System.out.print("schleifenzahlen: ");

        while (istAnzahl < sollAnzahl) {
            int temp = (int)(Math.random() * max);
            System.out.print(temp);

            if (! used[temp]) {
                auswahl[istAnzahl] = temp;
                used[temp] = true;
                istAnzahl++;
            }
        }

        System.out.println();
        System.out.println("auswahl:" + Arrays.toString(auswahl));
    }
 
B

bone2

Gast
mit max=20 und sollAnzahl = 20 kommt bei mir

Code:
schleifenzahlen: 51641391913101821601371651711114715941019171711181541618410451717101314016176161645121561416113610207101711181712351314151771008
auswahl:[5, 16, 4, 13, 9, 19, 10, 18, 2, 0, 7, 17, 1, 11, 15, 6, 12, 14, 3, 8]


du hast irgendwas falsch übertragen von meinem beispiel
 
Zuletzt bearbeitet von einem Moderator:

ARadauer

Top Contributor
weil heute so ein schöner tag ist...

Java:
import java.util.Arrays;

import javax.swing.JOptionPane;

public class RandomTest {

   public static void main(String[] args) {
      int auswahl[];
      String abfrage;
      int anzahl;

      abfrage = JOptionPane.showInputDialog("Wieviele Fragen möchten Sie beantworten (3-10)?");
      anzahl = Integer.parseInt(abfrage);

      auswahl = new int[anzahl];

      for (int i = 0; i <= (anzahl - 1); i++) // Befüllen des Arrays
      {
         int wert = 0;
         do {
            wert = (int) (Math.random() * 10) + 1;
         } while (contains(auswahl, wert));
         auswahl[i] = wert;
      }

      System.out.println(Arrays.toString(auswahl));
   }

   public static boolean contains(int[] arr, int wert) {
      for (int w : arr) {
         if (w == wert)
            return true;
      }
      return false;
   }
}


nur zur info: das sind leichte anfänger beispiele um die grundlagen zu lernen. Falls diese Aufgabe in der Schule gekommen ist, ist es ok. Falls du aber studierst wirs schwierig werden...

ach ja, wer weiß was passiert wenn man 11 eingibt bekommt 100 punkte ;-)
 

faetzminator

Gesperrter Benutzer
[c]wert = (int) (Math.random() * 10) + 1;[/c] -> [c]wert = (int) (Math.random() * anzahl) + 1;[/c] ;)
Aber eigentlich ist dieses Problem viel einfacher lösbar: Erstelle eine Liste mit Inhalt [c]1 - anzahl[/c] und lass [c]Collections.shuffle()[/c] drüber laufen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
onlyxlia Anzahl Random Zahlen mit Scanner abfragen und in Array speichern Java Basics - Anfänger-Themen 10
laxla123 Bedeutung int random Java Basics - Anfänger-Themen 3
monsterherz Arbeiten mit Random Java Basics - Anfänger-Themen 12
J Math.Random Java Basics - Anfänger-Themen 9
XWing Random Punkte erstellen mit der Random klasse Java Basics - Anfänger-Themen 15
I aus 2 random zahlen soll nur die ungerade summe der beiden genommen werden. Java Basics - Anfänger-Themen 13
K Problem mit "Random" Java Basics - Anfänger-Themen 5
W Bestimmte Zahlen bei Math.random ausschließen? Java Basics - Anfänger-Themen 31
W n verschiedene Arrays zufällig ausgeben - mit der Random-Klasse? Java Basics - Anfänger-Themen 8
S Math.random funktioniert nicht Java Basics - Anfänger-Themen 5
S Random(x,y,z) Java Basics - Anfänger-Themen 4
alialhajhossein math.random Java Basics - Anfänger-Themen 3
JD_1998 Random Array sortieren mit Hilfe einer Methode Java Basics - Anfänger-Themen 4
L Zufälliges Objekt aus der ArraylList ohne java.util.Random Java Basics - Anfänger-Themen 56
W Random Zahl unter Berücksichtung eines Durchschnitts Java Basics - Anfänger-Themen 7
D Wahrscheinlichkeiten mit Math.random() Methode Java Basics - Anfänger-Themen 1
T Random soll Zufallszahl beibehalten. Java Basics - Anfänger-Themen 11
A Random Double mit Math.round() runden? Java Basics - Anfänger-Themen 1
B Math.random mit Boolean array? Java Basics - Anfänger-Themen 17
I math.random Grenzwerte Java Basics - Anfänger-Themen 2
C Arraywerte random vertauschen Java Basics - Anfänger-Themen 2
E Methoden Math.Random() kürzen ? Java Basics - Anfänger-Themen 2
SchmidiMC Methoden Random in Methode neu generieren lassen Java Basics - Anfänger-Themen 1
J Klassen Math && Random: wie zufällig sind Zufallszahlen? Java Basics - Anfänger-Themen 19
J Operatoren Random wird nur einmal erstellt und dann immer verwendet Java Basics - Anfänger-Themen 2
D Erste Schritte Random erzeugen Java Basics - Anfänger-Themen 28
D Erste Schritte Random Java Basics - Anfänger-Themen 79
Z Problem mit "Random" in Java Java Basics - Anfänger-Themen 12
Z Array-Index einmalig je mit Random füllen Java Basics - Anfänger-Themen 7
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
J Methoden Math.random unklar Java Basics - Anfänger-Themen 4
N java.util.Random - Zwei Zahlen mit festgesetzter Wahrscheinlichkeit? Java Basics - Anfänger-Themen 15
Thorwine Erste Schritte Wuerfelspiel mit Math.random() Java Basics - Anfänger-Themen 10
S Math.random() Zufall ? Java Basics - Anfänger-Themen 2
S Random Plattformen erstellen Java Basics - Anfänger-Themen 7
C Erste Schritte Random Wert auslesen und ausgeben Java Basics - Anfänger-Themen 2
H Ist Math.Random() eine Methode oder ein Methodenaufruf (Klausurfrage) Java Basics - Anfänger-Themen 4
I Random Ergebnis ausgeben und Gewinner ausgeben. Java Basics - Anfänger-Themen 3
I Spieler Name eintragen und Random Gewinner Java Basics - Anfänger-Themen 4
A Random String in TextView (Android)? Java Basics - Anfänger-Themen 2
V Random Java Basics - Anfänger-Themen 2
X Problem mit Math.random() Java Basics - Anfänger-Themen 2
S Random IDs immer 10-stellig? Wie? Java Basics - Anfänger-Themen 5
T Random vs. Math.random() Java Basics - Anfänger-Themen 2
R Schaffe es nicht Random-Programmierung zu vollenden. Wo liegt der Fehler in diesem Code? Java Basics - Anfänger-Themen 13
Y Random-Objekt und Swing Java Basics - Anfänger-Themen 4
B Verstehe ZufallInt = (int) (Math.random() * 5 + 1); nicht Java Basics - Anfänger-Themen 9
K Doppelte namen bei random Java Basics - Anfänger-Themen 3
K Einfacher random namen weitergeben Java Basics - Anfänger-Themen 4
B Hilfe bei Greenfoot ( random blickrichtung + vor(); Java Basics - Anfänger-Themen 10
B Variablen Mehrere Zahlen mit unterschiedlicher Wahrscheinlichkeit mit Random auswählen Java Basics - Anfänger-Themen 17
M Random bereich und for schleife Java Basics - Anfänger-Themen 20
Jagson Dotcom Spiel - Dots Random setzen Java Basics - Anfänger-Themen 8
R java.util.Random Java Basics - Anfänger-Themen 8
T Zufallserzeugung mit math.random und speichern in array Java Basics - Anfänger-Themen 29
J Woher kommt das Objekt "Math" bei Math.random(); ? Java Basics - Anfänger-Themen 3
P Typecasting für Ganzzahlige Zufallszahl (Math.random) Java Basics - Anfänger-Themen 2
I Zwei Mal das selbe Objekt per Random :( Java Basics - Anfänger-Themen 7
E Random Java Basics - Anfänger-Themen 7
Q Random Funktion JButtons Java Basics - Anfänger-Themen 6
E Variable neue Random Zahl zuweisen, wenn Button geklickt Java Basics - Anfänger-Themen 5
J Bedeutung von math.random() math.round() Java Basics - Anfänger-Themen 7
K ArrayList random füllen Java Basics - Anfänger-Themen 2
K random problem Java Basics - Anfänger-Themen 3
F Problem Math.random in for-Schleife Java Basics - Anfänger-Themen 8
R (Math.random()*49) zahl darf aber nur einmal gezogen werden Java Basics - Anfänger-Themen 11
T Buttons (auf denen bilder sind) random vertauschen Java Basics - Anfänger-Themen 11
C math.random() Java Basics - Anfänger-Themen 9
R math.random wertebereich 16-21 Java Basics - Anfänger-Themen 3
B Math.random und Strings Java Basics - Anfänger-Themen 13
R Java Random Java Basics - Anfänger-Themen 13
G Zahl erstellen / Random Java Basics - Anfänger-Themen 12
J Random Java Basics - Anfänger-Themen 11
radiac Datentypen RANDOM-punkt setzen INNERHALB eines BEREICHes Java Basics - Anfänger-Themen 2
M Zufallszahlen mit Random Java Basics - Anfänger-Themen 4
K Random Zahlen in ein Feld Java Basics - Anfänger-Themen 4
N java.util.Random Java Basics - Anfänger-Themen 6
Luk10 math.random() Java Basics - Anfänger-Themen 2
walker23m Datentypen Zufällig umsortieren einer Hashmap(random?) Java Basics - Anfänger-Themen 3
M Junit TestCase für Random() Zahlen Java Basics - Anfänger-Themen 6
S Random zahlen mit unter und obergrenze Java Basics - Anfänger-Themen 3
D Problem mit Set, Stack und Random Java Basics - Anfänger-Themen 2
S Skatblatt darstellen durch Random? Java Basics - Anfänger-Themen 48
C Bereich festelgen bei Random Java Basics - Anfänger-Themen 9
H Random-Zahlen Java Basics - Anfänger-Themen 7
L Random Sortierung Java Basics - Anfänger-Themen 9
T random-methode Java Basics - Anfänger-Themen 18
M Random in Swing Java Basics - Anfänger-Themen 24
J Math.random() - kurze frage. Java Basics - Anfänger-Themen 20
J Random Wertebereich Java Basics - Anfänger-Themen 2
B Frage zu Random Java Basics - Anfänger-Themen 21
chik klasse random() Java Basics - Anfänger-Themen 6
B Random Zahlen und Formatierung Java Basics - Anfänger-Themen 6
G Random Zahlen Java Basics - Anfänger-Themen 25
S Diashoow Random Java Basics - Anfänger-Themen 4
G Switch-Case harmoniert nicht mit Random-Zahl Java Basics - Anfänger-Themen 3
Spin 4 stellige random zahl erzeugen Java Basics - Anfänger-Themen 4
G random mit tendenz? Java Basics - Anfänger-Themen 8
hedges Würfelwurf mit java.util.Random ohne 0 Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben