Az srand () függvény a C ++ - ban megemeli a rand () függvény által használt álvéletlenszám-generátort.
Az srand () függvény a C ++ - ban elveti a rand () függvény által használt álvéletlenszám-generátort. A seed for rand () függvény alapértelmezés szerint 1.
Ez azt jelenti, hogy ha a rand () előtt nem hívnak meg srand () -t, akkor a rand () függvény úgy viselkedik, mintha srand (1) -vel lett volna beültetve.
srand () prototípus
void srand (aláíratlan int mag);
Az srand () függvény egy előjel nélküli egész számot vesz paraméterül, amelyet a rand () függvény magként használ.
A fejlécfájlban van meghatározva.
srand () Paraméterek
- mag: Az előjel nélküli int magtípus értéke
srand () Visszatérési érték
- Egyik sem
Az srand () függvény nem ad vissza értéket.
1. példa: Hogyan működik az srand () függvény?
#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; )
A program futtatásakor a kimenet a következő lesz:
Vetőmag = 1, Véletlenszám = 41 Vetőmag = 5, Véletlenszám = 54
Jó gyakorlat, ha a pszeudo véletlenszám-generátort csak egyszer vesszük be a program elején és a rand () hívásai előtt. Nem szabad minden alkalommal beírni, amikor új számkészletet kell létrehoznunk.
A szokásos gyakorlat az időhívás (0) eredményének felhasználása magként. Az idő () függvény visszaadja az 1970. január 1-jei UTC 00:00 óra (azaz az aktuális unix időbélyegző) óta eltelt másodpercek számát. A vetőmag értéke idővel változik. Tehát minden alkalommal, amikor a programot futtatjuk, új véletlenszám-készlet jön létre.
2. példa: srand () függvény idővel ()
#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; )
A program futtatásakor a kimenet a következő lesz:
Mag = 1485583981 Véletlenszám = 22589