Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
int[] a = new int[500]; //Größe natürlich beliebig
int oberGrenze = ?; //kannst du wählen wie du willst
for(int i = 0; i<a.length; i++) {
a[i] = (int)(Math.random()*oberGrenze); //casten nicht vergessen!
}
Durch das multiplizieren mit "oberGrenze" erhälst du dann Zufallszahlen im Intervall [0,oberGrenze]
Kannst du mir die Zeile nochmal erklären. Mir erschließt sich das multiplizieren mit meiner gesetzten Obergrenze nicht! Was bedeuten "casten" und warum soll ich das nicht vergessen?
Ah, okay, dass ist ganz einfach. Zuerst zur Obergrenze:
Math.random() liefert dir eine Pseudozufallszahl im Intervall [0,1] (d.h. 0 & 1 eingeschlossen). Willst du also z.B. dann Zufallszahlen von 0 bis 5 haben, musst du diese erzeugte Zufallszahl mit 5 multiplizieren. 0*5 ist 0, 1 * 5 ist 5. Alle Zahlen zwischendrin geben dir dann durch die Multiplikation z.B. Zahlen wie 3.235, 2.198, 4.12, 0.445 etc.
Die musst du dann noch abrunden und du hast eine Ganzzahl in deinem gewünschten Intervall.
Zum Casten:
Math.random() liefert dir einen double-Werte. Aber double ist natürlich nicht gleich int und du kannst daher double-Werte nicht so einfach in eine int-Variable reinpacken. Daher konvertierst du die double-Zahl zu einem int. Das wird casten genannt. Generell geht das casten einfach durch angeben des Datentyps in Klammern vor dem Ausdruck, der gecastet werden soll (wie in meinem Beispielcode).
Das Casten übernimmt dir hier auch gleichzeitig das abrunden. Da int ja keine Kommazahlen darstellen kann, werden die durch das casten nämlich einfach abgeschnitten.
Math.random() gibt dir eine double-Zufallszahl zwischen 0.0 und 1.0.
Wenn du das Ergebnis mit 50 multiplizierst, erhältst du eine double-Zufallszahl zwischen 0.0 und 50.0.
Weil du eine Ganzzahl wolltest, wird das in int gecastet (deshalb das int in Klammern). Dabei werden die Nachkommastellen abgeschnitten.
Man sollte noch dazusagen: In diesem Fall bedeutet "Obergrenze 50" dass die resultierenden Zahlen kleiner als 50, nicht kleiner/gleich 50 sind (Math.random gibt immer Zahlen < 1.0 aus).
Edit: Mist, zweiter Aber @Butterfly:
Butterfly hat gesagt.:
Pseudozufallszahl im Intervall [0,1] (d.h. 0 & 1 eingeschlossen)
(int)(irgendwas) bedeutet, dass irgendwas in ein int gecastet wird. In deinem Fall wird also das Ergebnis der Multiplikation in eine Ganzzahl gecastet.