Zufallsarray

Status
Nicht offen für weitere Antworten.

kossy

Bekanntes Mitglied
Ich möchte folgendes Szenario umsetzen:


Ich habe ein Array vom Typ String angelegt:

Code:
String[] elements = new String[18];


Nun möchte ich das mir in der folgenden Ausgabeanweisung eines dieser 18 Elemente zufällig ausgegeben wird, also quasi:

Code:
System.out.println("Hier erscheint das " + elements[math.random()] + " Element");


Wie kann ich die math.random()-Anweisung auf das Zahlenintervall von 1 bis 18 beschränken? Das Problem liegt ja auf der Hand, wenn der Wert über das deklarierte Array hinausgeht, so stürzt mein Programm ab.

Danke !!!
 

Vincent Vega

Mitglied
Ich habe da eine Lösung für, allerdings hab ich das mit util.Random gemacht.

Code:
Random rnd = new Random(); 
final int MAX_ZZAHL = 19;
int Zzahl = rnd.nextInt(MAX_ZZAHL);
 

Wodan

Aktives Mitglied
Siehte "Java ist auch eine Insel"

Positive Gleitkomma-Zufallszahlen zwischen größer gleich 0,0 und echt kleiner 1,0 liefert die Methode Math.random(). Die Rückgabe ist double und eine Typanpassung auf int führt immer zum Ergebnis 0.

Möchten wir Werte in einem anderen Wertebereich haben, ist es eine einfache Lösung, die Zufallszahlen von Math.random() durch Multiplikation auf den gewünschten Wertebereich auszudehnen und per Addition geeignet zu verschieben. Eine Zufallszahl zwischen x (inklusiv) und y (exklusiv) liefert Math.random() * (y – x) + x. Um ganzzahlige Zufallszahlen zwischen u und o (einschließlich) zu erhalten, berechnen wir u + Math.floor(Math.random() * (o-u+1)). Eine weitere einfache Lösung ist es, den Modulo-Operator einzusetzen und so den Wertebereich zu beschneiden. Noch besser ist allerdings der direkte Einsatz der Klasse Random und der Funktion nextInt(n), die das Kapitel später vorstellt.

Ich würde dir mal empfehlen die Formel "0 + Math.floor(Math.random() * (18-0+1))"

System.out.println("Hier erscheint das " + elements[0 + Math.floor(Math.random() * (18-0+1))] + " Element");

mfg wodan
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
E Rekursive Methode mit Zufallsarray Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben