Hallo, ich habe ein riesiges Problem:
Ich muss ein Programm schreiben, welches mit Zufallszahlen arbeitet, wenn ich das Programm aber starte, sind die Zufallszahlen bei jeder Ausführung gleich!!!
Wer hat eine Lösung (dringend)???
Hier ein Quellcode, der bei mir immer das gleiche leifert:
#include <stdio.h>
#include <stdlib.h>
main() {
int myrand;
int i;
for (i=0; i<10; i++) {
myrand=1+(int) (10.0*rand()/(RAND_MAX+1.0));
printf ("%d
", myrand);
}
return 0;
}
Ausgabe immer:
sh-2.04$ ./test2
9
4
8
8
10
2
4
8
3
6
sh-2.04$ ./test2
9
4
8
8
10
2
4
8
3
6
sh-2.04$ ./test2
9
4
8
8
10
2
4
8
3
6
ZUFALLSZAHLEN in C(++) sind immer gleich
Re: ZUFALLSZAHLEN in C(++) sind immer gleich
Keine Panik, das ist normal, da die Zahlen immer nur vom eigenen Prozess abhaengen, der ja immer gleich ist. Du kannst aber unterschiedliche Startwerte vorgeben, und diese z.B. von der Systemzeit abhaengig machen, indem du folgendes an den Anfang deines Progs schreibst:
#include <time.h>
srand(time(NULL));
oder so aehnlich, guck mal unter 'man srand'.
stderra
#include <time.h>
srand(time(NULL));
oder so aehnlich, guck mal unter 'man srand'.
stderra
Re: ZUFALLSZAHLEN in C(++) sind immer gleich
Hallo, danke für die schnelle Antwort, ich werds gleich mal probieren )
(Das Programm muss bis Montag fertig werden)
Weissi
(Das Programm muss bis Montag fertig werden)
Weissi
Re: ZUFALLSZAHLEN in C(++)
musst du es für irgendeine uni erlangen? opps ich meine fertig machen? So System Programmierung oder so?
Re: ZUFALLSZAHLEN in C(++) sind immer gleich
Hm, ich musste auch mal was mit Zufallszahlen machen, und hatte das Problem, dass der Rechner so schnell war, dass
er für ca. 30 Iterationen den selben Zeitwert genommen hat.
Mich würde hierbei interessieren, ob man irgendwie auf den "Milli/Nano-Sekunden"-Bereich zugreifen kann, oder eine
"Verlangsamung" der Programm ausführung, natürlich ohne scanf() <img src="http://www.pl-forum.de/UltraBoard/Images/Happy.gif" border="0" align="middle"> einbauen kann.
Danke Gruss aby
er für ca. 30 Iterationen den selben Zeitwert genommen hat.
Mich würde hierbei interessieren, ob man irgendwie auf den "Milli/Nano-Sekunden"-Bereich zugreifen kann, oder eine
"Verlangsamung" der Programm ausführung, natürlich ohne scanf() <img src="http://www.pl-forum.de/UltraBoard/Images/Happy.gif" border="0" align="middle"> einbauen kann.
Danke Gruss aby
Re: ZUFALLSZAHLEN in C(++) sind immer gleich
[...]den "Milli/Nano-Sekunden"-Bereich zugreifen kann[...]
Mit nanosleep()
MfG
Jürgen Wolf
Mit nanosleep()
MfG
Jürgen Wolf
Re: ZUFALLSZAHLEN in C(++) sind immer gleich
> Hm, ich musste auch mal was mit Zufallszahlen machen,
> und hatte das Problem, dass der Rechner so schnell war, dass
> er für ca. 30 Iterationen den selben Zeitwert genommen hat.
Der Trick ist, daß man srand() nur einmal (am Anfang des Programms) aufruft...
> und hatte das Problem, dass der Rechner so schnell war, dass
> er für ca. 30 Iterationen den selben Zeitwert genommen hat.
Der Trick ist, daß man srand() nur einmal (am Anfang des Programms) aufruft...