C ++ srand () - C ++ Standardbibliotek

Funktionen srand () i C ++ fröer pseudoslumpgeneratorn som används av funktionen rand ().

Funktionen srand () i C ++ fröer pseudoslumpgeneratorn som används av funktionen rand (). Funktionen frö för rand () är 1 som standard.

Det betyder att om ingen srand () anropas före rand (), fungerar funktionen rand () som om den såddes med srand (1).

srand () prototyp

 ogiltig srand (osignerad int seed);

Funktionen srand () tar ett osignerat heltal som sin parameter som används som seed av funktionen rand ().

Det definieras i rubrikfilen.

srand () Parametrar

  • seed: Ett frövärde av typen osignerad int

srand () Returvärde

  • Ingen

Funktionen srand () returnerar inget värde.

Exempel 1: Hur fungerar srand () -funktionen?

 #include #include using namespace std; int main() ( int random = rand(); /* No srand() calls before rand(), so seed = 1*/ cout << "Seed = 1, Random number = " << random << endl; srand(5); /* Seed = 5 */ random = rand(); cout << "Seed = 5, Random number = " << random << endl; return 0; )

När du kör programmet blir resultatet:

 Seed = 1, Slumptal = 41 Seed = 5, Slumptal = 54

Det är en bra praxis att sådd pseudo slumptalsgeneratorn bara en gång i början av programmet och före några anrop av rand (). Det bör inte sås varje gång vi behöver skapa en ny uppsättning siffror.

Standardpraxis är att använda resultatet av ett samtal till tid (0) som utsäde. Funktionen time () returnerar antalet sekunder sedan 00:00 timmar, 1 jan 1970 UTC (dvs. den aktuella unix-tidsstämpeln). Värdet av utsäde förändras med tiden. Så varje gång vi kör programmet genereras en ny slumpmässig uppsättning.

Exempel 2: srand () -funktion med tid ()

 #include #include #include using namespace std; int main() ( srand(time(0)); int random = rand(); cout << "Seed = " << time(0) << endl; cout << "Random number = " << random << endl; return 0; )

När du kör programmet blir resultatet:

 Frö = 1485583981 Slumpmässigt nummer = 22589

Intressanta artiklar...