C programozás

rand () Funkció a C nyelvben

rand () Funkció a C nyelvben
C nyelven az rand () függvényt használjuk Álszámgenerátor (PRNG). A rand () függvény által generált véletlenszámok nem igazán véletlenszerűek. Ez egy olyan szakasz, amely időszakosan megismétlődik, de az időszak akkora, hogy figyelmen kívül hagyhatjuk. A rand () A funkció a következő véletlenszám és a következő új mag kiszámításához használt alapérték emlékezésével működik. Ebben a cikkben részletesen megvitatjuk, hogyan lehet véletlenszámokat előállítani a rand () funkció. Tehát kezdjük!

Fejlécfájl:

stdlib.h

Szintaxis:

int rand (érvénytelen)

Visszatérési értékek:

Ez a függvény a sorozat következő álvéletlenszámát adja vissza. A számsor tartománytartománya 0 és RAND_MAX között van. A RAND_MAX egy makró stdlib.h fejlécfájl, amelynek értéke a maximális érték, amely rand () függvénnyel visszatérhet. A RAND_MAX értéke nagyobb, de nem kevesebb, mint 32767, a C könyvtáraktól függően.

// Példa1.c
#include
#include
int main ()

int i;
printf ("10 véletlenszerű szám => \ n");
mert (i = 0; i<10;i++)

printf ("% d", rand ());

printf ("\ n");
visszatér 0;


Az 1. példában.c, meghívjuk a rand () függvényt a ciklus minden iterációjában, és kinyomtatjuk a függvény visszatérési értékét. A rand () függvény értéksorozata a program minden egyes futtatásakor ugyanaz. Alapértelmezés szerint a rand függvény magja 1-re van állítva.

A Rand függvény magját beállíthatjuk a srand () funkció. A vetőmagot csak egyszer lehet beállítani, és még az első alkalommal rand () függvényhívás.

srand () függvény:

Fejlécfájl:

stdlib.h

Szintaxis:

int srand (aláíratlan int mag)

Érvek:

Ehhez a függvényhez 1 argumentum szükséges

mag: Egész álérték véletlenszerű számok új sorozatának magjaként.

Visszatérési értékek:

Egyik sem

// 2. példa.c
#include
#include
#include
int main ()

int i;
srand (idő (0));
printf ("10 véletlenszerű szám => \ n");
mert (i = 0; i<10;i++)

printf ("% d", rand ());

printf ("\ n");
visszatér 0;


A 2. példában.c, az srand () függvénnyel beállítottuk a rand () függvény által generált véletlenszám-szekvencia kezdő magját. A program minden egyes futtatásakor egy másik sorrend jön létre. Az srand () - ben az idő (0) függvény (deklarálva idő.h fejlécfájl) magként használatos. Ez az idő (0) függvény adja vissza a korszak (1970. január 1., 00:00:00, 1970. január) óta eltelt másodpercek számát. Ez továbbra is ugyanazokat a szekvenciákat eredményezheti, ha a programot ugyanabban a másodpercben futtatja.

// 3. példa.c
#include
#include
#include
int main ()

int i;
srand (idő (0));
printf ("10 véletlenszerű szám 1 és 10 között => \ n");
mert (i = 0; i<10;i++)

printf ("% d", (rand ()% 10) + 1);

printf ("\ n");
visszatér 0;


A 3. példában.c láttuk, hogyan lehet véletlen számokat előállítani 1 és 10 között.

// Példa4.c
#include
#include
#include
int main ()

int i, max, min;
printf ("Írja be a Min érték =>");
scanf ("% d", & min);
printf ("Maximális érték megadása =>");
scanf ("% d", & max);
ha (min> max)

printf ("A minimális érték nagyobb, mint a maximális érték \ n");
visszatér 0;

srand (idő (0));
printf ("10 véletlenszerű szám% d és% d között => \ n", min, max);
mert (i = 0; i<10;i++)

printf ("% d", (rand ()% (max - min +1)) + min);

printf ("\ n");
visszatér 0;


A 4. példában.c vettük a felhasználótól a tartományt és generáltunk egy véletlen számot ezen a tartományon belül. A képlet: rand ()% (max - min +1)) + min

// Példa5.c
#include
#include
#include
int main ()

int i;
srand (idő (0));
printf ("10 véletlenszerű szám 0 között.0 és 1.0 => \ n ");
mert (i = 0; i<10;i++)

printf ("% f", ((float) rand () / RAND_MAX));

printf ("\ n");
visszatér 0;


Az 5. példában.c, láttuk, hogyan generálhatunk véletlen számokat a 0 úszó között.0 és 1.0 A képlet: (float) rand () / RAND_MAX)

// Példa6.c
#include
#include
#include
int main ()

int i;
úszó max, min;
printf ("Írja be a Min érték =>");
scanf ("% f", & min);
printf ("Maximális érték megadása =>");
scanf ("% f", & max);
ha (min> max)

printf ("A minimális érték nagyobb, mint a maximális érték \ n");
visszatér 0;

srand (idő (0));
printf ("10 véletlenszerű szám% f és% f között => \ n", min, max);
mert (i = 0; i<10;i++)

printf ("% f", min + ((float) rand () / (RAND_MAX / (max - min)));

printf ("\ n");
visszatér 0;


A 6. példában.c, a felhasználótól vettük a tartományt, és véletlenszerű számot generáltunk ezen a tartományon belül (mindkettőt beleértve). A képlet: min + ((float) rand () / (RAND_MAX / (max - min)))

Következtetés:

Ebben a cikkben megtudtuk, hogyan lehet véletlenszámokat előállítani a rand () és srand () funkció. A rand függvény által generált véletlen számok minőségével kapcsolatban nincsenek garanciák, de alkalmi használatra elég jó.

A legjobb 10 játék az Ubuntuban
A Windows platform a játékok egyik domináns platformja volt, mivel a játékokat hatalmas százalékban fejlesztik ma a natív Windows támogatására. Kihívh...
5 legjobb arcade játék Linuxhoz
Manapság a számítógépek komoly gépek, amelyeket játékra használnak. Ha nem sikerül megszerezni az új magas pontszámot, akkor tudni fogja, mire gondolo...
Csata a Wesnothért 1.13.6 Megjelent a fejlesztés
Csata a Wesnothért 1.13.A múlt hónapban megjelent 6 a hatodik fejlesztési kiadás az 1-ben.13.x sorozat, és számos fejlesztést hajt végre, nevezetesen ...