Hirdetés

Új hozzászólás Aktív témák

  • Karma
    félisten

    srand(time(NULL));
    x=rand()%9;

    Egy programban használok egy ilyen random szám generálást, de ezt csak úgy neten találtam. Elmondanátok, hogyan működik ez pontosan? :)

    Az egész mögött egy pszeudo-véletlenszám generátor van, ami egy kezdőérték (seed) alapján generál számokat. (Nem valódi véletlenszámok, de ez most mindegy.)

    A srand függvény szolgál ennek a seed értéknek a beállítására. A time(NULL) függvény az aktuális rendszeridőt adja vissza egy egész szám formájában (1970. január 1. óta eltelt másodpercek száma); ha ezt adod meg seednek, gyakorlatilag minden másodpercben más véletlenszámokat kapsz.

    Azonos seed mellett meg ugyanazok a számsorozat jönne ki a rand() hívogatása során.

    A rand() egyébként ez a seed meg a belső algoritmusa alapján egy 0 és RAND_MAX (legalább 32767, maximum MAX_INT, környezetfüggő) közötti egész számot ad vissza. Ha ennek veszed a kilences maradékát, 0 és 8 közötti számokat kapsz.

    Szerk.: Eh, lassú voltam.

Új hozzászólás Aktív témák