webForumDet fria alternativet

srand.. what is that..?

C/C++

2 svar · 370 visningar · startad av Leeson

Medlem sedan dec. 200313 inlägg
Frågan#1

har fått en uppgift i skolan om att vi ska använda en funktion
srand .... vad är det för nått..?

Medlem sedan feb. 20002 300 inlägg
#2

srand används för att sätta ett "frövärde" (seed). Detta frövärde användes vid slumptalsgenerering.

Förenklat kan man säga att slumptal i datorer är egentligen inte riktiga slumptal. De genereras med en typ av algoritm och räknar ut ett nytt slumptal baserat på det föregående slumptalet. srand används för att sätta detta första värde.

Ofta brukar man skicka in tiden som en parameter till srand:

srand(time(NULL)); // seed:a
Medlem sedan juni 2003372 inlägg
#3

srand kan användas för att ge bättre slumptal. Kör man rand() utan att först ha satt seeden med srand så blir det samma varje gång.
Kör det här programmet 2 ggr så ser du vad jag menar.

#include <cstdlib>
#include <ctime>
#include <iostream>
using namespace std;

int main()
{
	cout << rand() << endl;
	srand(time(0));
	cout << rand() << endl;
	
    return 0;
}

/r
Var tydligen inte tillräckligt snabb där

270 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
139 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)