C ++ srand () - C ++ - vakiokirjasto

C ++: n srand () -funktio siementää rand () -funktion käyttämän pseudo-satunnaislukugeneraattorin.

C ++: n srand () -funktio kylvää rand () -funktion käyttämän näennäissatunnuslukujen generaattorin. Funktio siemen randille () on oletusarvoisesti 1.

Se tarkoittaa, että jos yhtään srandia () ei kutsuta ennen randia (), rand () -funktio käyttäytyy ikään kuin se olisi kylvetty srandilla (1).

srand () prototyyppi

 void srand (allekirjoittamaton int-siemen);

Srand () -funktio ottaa parametriksi allekirjoittamattoman kokonaisluvun, jota rand () -funktio käyttää siemeninä.

Se määritetään otsikkotiedostossa.

srand () -parametrit

  • siemen: Siemenarvo tyyppiä allekirjoittamaton int

srand () Palautusarvo

  • Ei mitään

Funktio srand () ei palauta arvoa.

Esimerkki 1: Kuinka srand () -toiminto toimii?

 #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; )

Kun suoritat ohjelmaa, tulos on:

 Siemen = 1, satunnaisluku = 41 Siemen = 5, satunnaisluku = 54

On hyvä käytäntö pseudo-satunnaislukugeneraattorin sijoittaminen vain kerran ohjelman alussa ja ennen randin kutsuja (). Sitä ei pitäisi kylvää joka kerta, kun meidän on luotava uusi numerosarja.

Tavallinen käytäntö on käyttää aikakutsun tulosta (0) siemenenä. Aika () -funktio palauttaa sekuntien määrän 1. tammikuuta 1970 kello 00.00 - UTC (eli nykyisen unix-aikaleiman) jälkeen. Siementen arvo muuttuu ajan myötä. Joten joka kerta, kun suoritamme ohjelmaa, syntyy uusi joukko satunnaislukuja.

Esimerkki 2: funktio srand () ajan () kanssa

 #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; )

Kun suoritat ohjelmaa, tulos on:

 Siemen = 1485583981 Satunnaisluku = 22589

Mielenkiintoisia artikkeleita...