ZUFALLSZAHLEN in C(++) sind immer gleich

Post Reply
Message
Author
weissi
Posts: 40
Joined: 24. Mar 2001 20:16
Location: Freiburg
Contact:

ZUFALLSZAHLEN in C(++) sind immer gleich

#1 Post by weissi »

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

stderra

Re: ZUFALLSZAHLEN in C(++) sind immer gleich

#2 Post by stderra »

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

weissi
Posts: 40
Joined: 24. Mar 2001 20:16
Location: Freiburg
Contact:

Re: ZUFALLSZAHLEN in C(++) sind immer gleich

#3 Post by weissi »

Hallo, danke für die schnelle Antwort, ich werds gleich mal probieren :))
(Das Programm muss bis Montag fertig werden)
Weissi

cp

Re: ZUFALLSZAHLEN in C(++)

#4 Post by cp »

musst du es für irgendeine uni erlangen? opps ich meine fertig machen? So System Programmierung oder so? ;)

aby

Re: ZUFALLSZAHLEN in C(++) sind immer gleich

#5 Post by aby »

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

Jürgen Wolf

Re: ZUFALLSZAHLEN in C(++) sind immer gleich

#6 Post by Jürgen Wolf »

[...]den "Milli/Nano-Sekunden"-Bereich zugreifen kann[...]

Mit nanosleep()

MfG
Jürgen Wolf

das
Posts: 78
Joined: 22. Jan 2001 1:37
Location: 42369 Wuppertal

Re: ZUFALLSZAHLEN in C(++) sind immer gleich

#7 Post by das »

> 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...

Post Reply