srand()
-
Hallo leute,
ich habe mit der funktion srand() folgendes problem:
ich hab eine funktion defineirt in der zufallszahlen generiert werden sollen:
int funktion(blabla)
srand(0);
for(i=1;i<=5;i++){
x=rand()%3;
.
.}
nun will ich in einem späteren teil des programms die funktion in einer scleife aufrufen:
z.B.
for(i=0;i<3;i++)
{
y=funktion(blabla);
}so habe ich das Problem dass jedes mal dann für y die gleiche zahl rauskommt..weil bei jedem aufrufen der funktion innerhalb der schleife der zufallsgenerator initialisiert wird.
ich will das deswegen so machen..weil ich die funktion woanders noch benutze und die zufallzahlen sollen immer dieselben sein, jedes mal wenn die funktion aufgerufen wird.
Meine Frage ist:
gibt es son befehl wo man den zufallsgenerator für das ganze Programm initialisieren kann??
oder was gibt es noch für möglichkeiten??
Ich wäre euch wirklich sehr dankbar.
-
ruf das doch gleich in der main als erste funktion auf.
int main() { srand(0); // dein code }
-
srand(time(0))
-
also wenn cih beides mache
werden immer noch unterschielcihe werte gelifert

-
srand(time(NULL));
-
es kommen immer noch unterschiedliche werte...

-
ich würd srand(time(NULL) benutzen und die werte in einem array abspeichern und dann so oft benutzen wie du willst.

-
long sek; time(&sek); srand((unsigned)sek): zufZahl = (rand()%3)+1;
-
Alida22, du brauchst zwei Funktionen. Eine, die srand mit einem festen "Seed" aufruft, und eine, die dir rand()%3 liefert. Immer wenn du die Zufallsfolge starten willst, rufst du die erste Funktion auf, und in der Schleife die zweite.