C programavimas

rand () Funkcija C kalba

rand () Funkcija C kalba
C kalba, randas () naudojama funkcija Pseudo skaičių generatorius (PRNG). Rand () funkcijos sugeneruoti atsitiktiniai skaičiai nėra tikrai atsitiktiniai. Tai periodiškai kartojama seka, tačiau laikotarpis yra toks didelis, kad galime jo nepaisyti. The randas () funkcija veikia prisimenant pradinės vertės reikšmę, kuri naudojama apskaičiuojant kitą atsitiktinį skaičių ir kitą naują sėklą. Šiame straipsnyje mes išsamiai aptarsime, kaip atsitiktiniai skaičiai gali būti sugeneruoti naudojant randas () funkcija. Taigi, pradėkime!

Antraštės failas:

stdlib.h

Sintaksė:

int randas (negaliojantis)

Grąžinimo vertės:

Ši funkcija grąžina kitą pseudo-atsitiktinį skaičių serijoje. Skaičių serijos diapazono vertė yra nuo 0 iki RAND_MAX. RAND_MAX yra makrokomanda, apibrėžta stdlib.h antraštės failas, kurio vertė yra didžiausia vertė, kuri gali grįžti pagal rand () funkciją. RAND_MAX reikšmė yra didesnė, bet ne mažesnė kaip 32767, priklausomai nuo C bibliotekų.

// 1 pavyzdys.c
# įtraukti
# įtraukti
int main ()

int i;
printf ("10 atsitiktinių skaičių => \ n");
už (i = 0; i<10;i++)

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

printf ("\ n");
grąžinti 0;


1 pavyzdyje.c, mes iškviečiame rand () funkciją kiekvienoje ciklo iteracijoje ir atspausdiname funkcijos grąžinimo vertę. Funkcijos rand () reikšmių seka yra ta pati kiekvieną kartą, kai vykdome programą. Pagal numatytuosius nustatymus rando funkcijos pradžia nustatyta į 1.

Rando funkcijai sėklą galime nustatyti naudodami srand () funkcija. Sėklą galima nustatyti tik vieną kartą ir prieš pirmą kartą randas () funkcijos iškvietimas.

srand () funkcija:

Antraštės failas:

stdlib.h

Sintaksė:

int srand (nepasirašyta int sėkla)

Argumentai:

Šiai funkcijai reikia 1 argumento

sėkla: Sveiko skaičiaus reikšmė, naudojama kaip naujos pseudo-atsitiktinių skaičių serijos pradžia.

Grąžinimo vertės:

Nė vienas

// 2 pavyzdys.c
# įtraukti
# įtraukti
# įtraukti
int main ()

int i;
srand (laikas (0));
printf ("10 atsitiktinių skaičių => \ n");
už (i = 0; i<10;i++)

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

printf ("\ n");
grąžinti 0;


2 pavyzdyje.c, mes panaudojome srand () funkciją norėdami nustatyti pradinę atsitiktinių skaičių sekos, generuojamos rand () funkcijos, sėklą. Kiekvieną kartą vykdant programą sukuriama vis kita seka. „Srand“ (), laiko (0) funkcija (deklaruota laikas.h antraštės failas) yra naudojamas kaip pradinis failas. Ši laiko (0) funkcija grąžina praėjusių sekundžių skaičių nuo epochos (00:00:00, 1970 m. Sausio 1 d.). Tai vis tiek gali sukelti tas pačias sekas, jei paleisite programą tą pačią sekundę.

// 3 pavyzdys.c
# įtraukti
# įtraukti
# įtraukti
int main ()

int i;
srand (laikas (0));
printf ("10 atsitiktinių skaičių tarp 1 ir 10 => \ n");
už (i = 0; i<10;i++)

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

printf ("\ n");
grąžinti 0;


3 pavyzdyje.c mes matėme, kaip atsitiktiniai skaičiai gali būti generuojami tarp 1 ir 10.

// 4 pavyzdys.c
# įtraukti
# įtraukti
# įtraukti
int main ()

int i, max, min;
printf ("Enter Min value =>");
scanf ("% d", & min);
printf ("Įveskite maksimalią vertę =>");
scanf ("% d", & max);
jei (min.> maks.)

printf ("Min. reikšmė yra didesnė už maksimalią vertę \ n");
grąžinti 0;

srand (laikas (0));
printf ("10 atsitiktinių skaičių tarp% d ir% d => \ n", min., maks.);
už (i = 0; i<10;i++)

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

printf ("\ n");
grąžinti 0;


4 pavyzdyje.c mes paėmėme diapazoną iš vartotojo ir sugeneravome atsitiktinį skaičių šiame diapazone. Formulė yra: randas ()% (maks. - min. +1)) + min

5 pavyzdys.c
# įtraukti
# įtraukti
# įtraukti
int main ()

int i;
srand (laikas (0));
printf ("10 atsitiktinių skaičių tarp 0.0 ir 1.0 => \ n ");
už (i = 0; i<10;i++)

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

printf ("\ n");
grąžinti 0;


5 pavyzdyje.c, matėme, kaip galime generuoti atsitiktinius skaičius tarp 0 plūdės.0 ir 1.0 Formulė yra: (plūduriuojantis) randas () / RAND_MAX

// 6 pavyzdys.c
# įtraukti
# įtraukti
# įtraukti
int main ()

int i;
plūdė max, min;
printf ("Enter Min value =>");
scanf ("% f", & min);
printf ("Įveskite maksimalią vertę =>");
scanf ("% f", & max);
jei (min.> maks.)

printf ("Min. vertė yra didesnė už maksimalią vertę \ n");
grąžinti 0;

srand (laikas (0));
printf ("10 atsitiktinių skaičių tarp% f ir% f => \ n", min., maks.);
už (i = 0; i<10;i++)

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

printf ("\ n");
grąžinti 0;


6 pavyzdyje.c, mes paėmėme diapazoną iš vartotojo ir sukūrėme atsitiktinį skaičių šiame diapazone (abu imtinai). Formulė yra: min + ((plūduriuojantis) randas () / (RAND_MAX / (maks. - min)))

Išvada:

Šiame straipsnyje mes sužinojome, kaip atsitiktiniai skaičiai gali būti generuojami naudojant randas () ir srand () funkcija. Nėra jokių garantijų dėl atsitiktinių skaičių, kurį sugeneruoja rando funkcija, kokybės, tačiau jis yra pakankamai geras kasdieniniam naudojimui.

Kaip naudoti „GameConqueror Cheat Engine“ sistemoje „Linux“
Straipsnyje pateikiamas „GameConqueror“ apgaulės variklio naudojimo „Linux“ vadove. Daugelis žaidėjų, žaidžiančių sistemoje „Windows“, dažnai naudoja ...
Geriausi „Linux“ žaidimų konsolių emuliatoriai
Šiame straipsnyje bus išvardyta populiari žaidimų konsolių emuliavimo programinė įranga, skirta „Linux“. „Emuliacija“ yra programinės įrangos suderina...
Geriausi „Linux“ žaidimų distristai 2021 m
„Linux“ operacinė sistema nuėjo ilgą kelią nuo originalios, paprastos, serverio išvaizdos. Ši OS pastaraisiais metais nepaprastai patobulėjo ir dabar ...