100 Zahlen erzeugen aber der Zufallsgenerator soll nur einmal erzeugt werden?
public class Main {
public static void main(String[] args) {
int[] a = new int[10];
Random rd = new Random();
int rand = rd.nextInt(10);
int b = 100;
do{
System.out.println(rand);
b--;
}
while (b>1);
}
}
Mein Problem ist dass, der gleiche Wert immer ausgegeben wird.
Achtung!:
der Zufallsgenerator soll nur einmal erzeugt werden. Die Zeile
Random rd = new Random();
soll also außerhalb der schleife stehen.
4 Antworten
![](https://images.gutefrage.net/media/default/user/9_nmmslarge.png?v=1551279448000)
Er wird doch nur einmal erzeugt. Die Zeile "new Random()" steht ja vor der Schleife. Ich verstehe das Problem nicht ganz.
Ich kenne Java nicht und welcher seed verwendet wird, wenn man keinen angibt. Beim selben seed ergibt sich auch immer dieselbe Zahlenfolge. Bei .Net wird standardmäßig die Systemzeit verwendet.
![](https://images.gutefrage.net/media/user/ranger1111/1664398651580_nmmslarge__0_0_300_300_9a4334409e63f908baa4b0bff88a688f.jpg?v=1664398652000)
So ist das wenn man antwortet, aber eine andere Sprache "spricht". Mache ich aber auch so. ;)
![](https://images.gutefrage.net/media/default/user/9_nmmslarge.png?v=1551279448000)
Naja, er schrieb "der Zufallsgenerator soll nur einmal erzeugt werden". Darauf bin ich eingestiegen. Insofern stimmt die Antwort ja, dass der Generator nur einmal erzeugt wird. Wenn die Frage gelautet hätte, warum immer wieder derselbe Wert ausgegeben wird, hätte ich weitergelesen. Die Frage war also falsch gestellt. ;)
![](https://images.gutefrage.net/media/user/ranger1111/1664398651580_nmmslarge__0_0_300_300_9a4334409e63f908baa4b0bff88a688f.jpg?v=1664398652000)
![](https://images.gutefrage.net/media/default/user/9_nmmslarge.png?v=1551279448000)
Eben. Nochmal: Er schrieb "der Zufallsgenerator soll nur einmal erzeugt werden". Ich schrieb, dass er ja nur einmal erzeugt wird. Was ist daran falsch?
![](https://images.gutefrage.net/media/user/ranger1111/1664398651580_nmmslarge__0_0_300_300_9a4334409e63f908baa4b0bff88a688f.jpg?v=1664398652000)
![](https://images.gutefrage.net/media/user/Nicox1999/1556919519161_nmmslarge__939_0_683_683_0f097b2217b3a5d24ca9bfae789a0f3b.jpg?v=1556919519000)
Warum man da ne do while nimmt ergibt sich mir nicht. Nimm ne for Schleife. Ramdom.nextint() erzeugt eine neue Zufallszahl also muss das in der schleife stehen.
Du speicherst einmal eine Zufallszahl und gibst die in der Schleife immer aus.
Außerdem läuft die schleife nur 99 mal.
![](https://images.gutefrage.net/media/user/Arman640/1595951568214_nmmslarge__265_0_526_526_9c483e1aee15eaf5b5e77dd632fc8b50.jpg?v=1595951568000)
man hätte es genau so mit andere Schleifen machen können,
Aber die Aufgabe ist es den Zufallsgenerator so zu erstellen
![](https://images.gutefrage.net/media/user/Arman640/1595951568214_nmmslarge__265_0_526_526_9c483e1aee15eaf5b5e77dd632fc8b50.jpg?v=1595951568000)
![](https://images.gutefrage.net/media/user/xxxcyberxxx/1691185806883_nmmslarge__0_0_1230_1230_4dfa4fbf5df5051b1dd22ccc1781adca.png?v=1691185807000)
Du müsstest in der schleife immer einen neuen zufälligen Integer erstellen, also in der Schleife nextInt nutzen
![](https://images.gutefrage.net/media/user/Arman640/1595951568214_nmmslarge__265_0_526_526_9c483e1aee15eaf5b5e77dd632fc8b50.jpg?v=1595951568000)
![](https://images.gutefrage.net/media/user/ranger1111/1664398651580_nmmslarge__0_0_300_300_9a4334409e63f908baa4b0bff88a688f.jpg?v=1664398652000)
Na die Zeile mit "int rand..." gehört natürlich in die Schleife.
![](https://images.gutefrage.net/media/user/Arman640/1595951568214_nmmslarge__265_0_526_526_9c483e1aee15eaf5b5e77dd632fc8b50.jpg?v=1595951568000)
![](https://images.gutefrage.net/media/user/ranger1111/1664398651580_nmmslarge__0_0_300_300_9a4334409e63f908baa4b0bff88a688f.jpg?v=1664398652000)
Definitiv nein. Das new Random soll außerhalb sein. Du erzeugst doch mit nextInt() eine neue Zufallszahl. Das MUSS in die Schleife.
![](https://images.gutefrage.net/media/user/Arman640/1595951568214_nmmslarge__265_0_526_526_9c483e1aee15eaf5b5e77dd632fc8b50.jpg?v=1595951568000)
Deklariere einen eindimensionalen Array des Datentyps int der Länge 10.
Generiere nun in einer Schleife deiner Wahl (mit z.B. 1000 Durchläufen)
Zufallszahlen zwischen 0 und 9. Verwende dazu wie gewohnt den Java
Zufallszahlengenerator Random. Achte darauf, dass der Zufallsgenerator nur
einmal erzeugt werden soll. Die Zeile
Random rd = new Random();
soll also außerhalb der Schleife stehen.
![](https://images.gutefrage.net/media/user/ranger1111/1664398651580_nmmslarge__0_0_300_300_9a4334409e63f908baa4b0bff88a688f.jpg?v=1664398652000)
Was verstehst du nicht???
Du sollst die Zeile unter dem new Random() in die Schleife packen.
![](https://images.gutefrage.net/media/user/Arman640/1595951568214_nmmslarge__265_0_526_526_9c483e1aee15eaf5b5e77dd632fc8b50.jpg?v=1595951568000)
...wie ich grad in der anderen Antwort lese, muss natürlich nextInt in die Schleife. Hab ich nicht gesehen. 🙈