Avatar billede kaptajnknark Nybegynder
21. april 2007 - 15:25 Der er 6 kommentarer

Tilfældigt tal!

Hej igen.

Jeg skal bruge en funktion der generer et tilfældigt tal mellem 0 og 25. Jeg har prøvet lidt med rand() funktionen, men den genererer det samme tilfældige tal hver gang programmet eksekverer.

Jeg har ligeledes forsøgt mig med funktionen random(int), men den kunne min compiler ikke finde...

Er der nogen der kan give et lille hint til hvordan den skal kringles?
Avatar billede bertelbrander Novice
21. april 2007 - 15:30 #1
#include <time.h>
#include <stdlib.h>
#include <iostream>
using std::cout;
using std::endl;
int main()
{
  srand(time(0));
  for(int i = 0; i < 10; i++)
      cout << rand()%25 << endl;
}
Avatar billede kaptajnknark Nybegynder
21. april 2007 - 16:07 #2
tak skal du have... kan du måske forklare lidt hvad linien

srand(time(0));

gør?
Avatar billede arne_v Ekspert
21. april 2007 - 17:25 #3
http://www.eksperten.dk/artikler/686

kunne måske værre af interesse
Avatar billede bertelbrander Novice
21. april 2007 - 20:10 #4
time funktionen henter den nuværende tid, almindeligvis i sekunder siden 1/1 1970, denne tid returneres.
srand "seeder" tilfældighedsgeneratoren der bruges af rand
Tilsammen sikrer de at kaldene til rand ikke giver de samme tilfældige tal hver gang.

Se f.eks:
http://www.hmug.org/man/3/time.php
http://swoolley.homeip.net/man.cgi/3/rand
Avatar billede segmose Nybegynder
23. april 2007 - 09:25 #5
srand bruges også når man vil have mulighed for at få de samme "tilfældige" værdier igen, i visse tilfælde vil du også de kode som

if (seedx)
  srand(seedx);
else
  srand(time(0));
Avatar billede kaptajnknark Nybegynder
23. april 2007 - 15:39 #6
Nice... endnu en gang tak for hjælpen!
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester