02. oktober 2001 - 21:51Der er
9 kommentarer og 1 løsning
Random()
ar prøvet at lege lidt med rand() og random() i c, men det virker som om det generere det samme tal hver gang jeg kalder programmet. Kan det passe? - og hvordan kan jeg løse det?
ååååh det er C du mener jeg har lavet c++. slet cout<< og iostream.
#include <time.h> #include <stdlib.h>
int main(){ srand(time(NULL)); //tager rand af tiden skal kun udføres en gang int k; for (int i=0;i<10;i++){ k=rand()%100 print(\"tal nr :\",k); //er det ikke sådan man laver printf ? }
Det du sikkert mangler i dit program er at kalde funktionen srand(), som mickni33 også har vist.
srand() sætter et \"random seed\", altså et \"frø\" hvorfra alle de tilfældige tal genereres. Hvis dit random seed er sat til det samme hver gang (som det jo er, hvis du ikke har kaldt funktionen) vil du også få den samme talrække hver gang.
Det er smart at kalde srand med time() som parameter, idet du så genererer et random seed, baseret på tiden lige nu i milisekunder. Det er MEGET usansynligt at den samme tid vil blive brugt to gange.
To processer KAN ikke kalde srand() på samme tid (de skiftes jo om cpu\'en), med mindre du har to cpu\'er i maskinen og stadigvæk er det yderst usansynligt.
Ja med en cpu er det fuldstændig umuligt, men med tre clienter der trykker enter samtidigt så , neeej det det kan ikke lade sig gøre, det ville være for usandsynligt
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.