C Programmeerimine

rand () Funktsioon C-keeles

rand () Funktsioon C-keeles
C-keeles on rand () funktsiooni kasutatakse Pseudonumbrigeneraator (PRNG). Funktsiooni rand () genereeritud juhuslikud arvud pole tegelikult juhuslikud. See on perioodiliselt korduv jada, kuid periood on nii suur, et võime seda ignoreerida. The rand () Funktsioon töötab, meenutades algväärtust, mida kasutatakse järgmise juhusliku arvu ja järgmise uue seemne arvutamiseks. Selles artiklis käsitleme üksikasjalikult, kuidas juhuslikke arve saab genereerida rand () funktsioon. Alustame siis!

Päisefail:

stdlib.h

Süntaks:

int rand (tühine)

Tagastusväärtused:

See funktsioon tagastab seeria järgmise pseudojuhusliku arvu. Numbriseeria vahemiku väärtus on vahemikus 0 kuni RAND_MAX. RAND_MAX on jaotises määratletud makro stdlib.h päisefail, mille väärtus on maksimaalne väärtus, mis saab tagastada funktsiooni rand () abil. RAND_MAX väärtus on suurem, kuid mitte vähem kui 32767, sõltuvalt C teekidest.

// Näide1.c
# kaasata
# kaasata
int main ()

int i;
printf ("10 juhuslikku numbrit => \ n");
jaoks (i = 0; i<10;i++)

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

printf ("\ n");
tagastama 0;


Näites1.c, kutsume funktsiooni rand () igas tsükli iteratsioonis ja printime funktsiooni tagastusväärtuse. Funktsiooni rand () väärtusjärjestus on iga kord, kui programmi käivitame, sama. Vaikimisi on rand-funktsiooni seemneks seatud 1.

Rand-funktsiooni seemne saame määrata, kasutades srand () funktsioon. Seemne saab panna ainult üks kord ja enne esimest korda rand () funktsioonikõne.

srand () funktsioon:

Päisefail:

stdlib.h

Süntaks:

int srand (allkirjastamata int-seeme)

Argumendid:

See funktsioon võtab 1 argumendi

seeme: Täisarvu väärtus, mida kasutatakse uue pseudojuhuslike arvude seeria seemnena.

Tagastusväärtused:

Puudub

// Näide2.c
# kaasata
# kaasata
# kaasata
int main ()

int i;
srand (aeg (0));
printf ("10 juhuslikku numbrit => \ n");
jaoks (i = 0; i<10;i++)

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

printf ("\ n");
tagastama 0;


Näites2.c, oleme kasutanud funktsiooni srand (), et määrata funktsiooni rand () genereeritud juhuslike arvude järjestus. Iga kord, kui programmi käivitatakse, genereeritakse erinev järjestus. Srandis () funktsiooni aeg (0) (deklareeritud aeg.h päisefaili) kasutatakse seemnena. See aeg (0) tagastab ajastust möödunud sekundite arvu (00:00:00, 1. jaanuar 1970). See võib ikkagi tekitada samad järjestused, kui käivitate programmi samal sekundil.

Näide3.c
# kaasata
# kaasata
# kaasata
int main ()

int i;
srand (aeg (0));
printf ("10 juhuslikku numbrit vahemikus 1 kuni 10 => \ n");
jaoks (i = 0; i<10;i++)

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

printf ("\ n");
tagastama 0;


Näites3.c oleme näinud, kuidas juhuslikke arve saab genereerida vahemikus 1 kuni 10.

// Näide4.c
# kaasata
# kaasata
# kaasata
int main ()

int i, max, min;
printf ("Sisestage Min väärtus =>");
scanf ("% d", & min);
printf ("Sisestage maksimaalne väärtus =>");
scanf ("% d" ja max);
kui (min> max)

printf ("Min väärtus on suurem kui max väärtus \ n");
tagastama 0;

srand (aeg (0));
printf ("10 juhuslikku numbrit vahemikus% d kuni% d => \ n", min, max);
jaoks (i = 0; i<10;i++)

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

printf ("\ n");
tagastama 0;


Näites4.c oleme võtnud kasutajalt vahemiku ja genereerinud selle vahemiku juhusliku arvu. Valem on: rand ()% (max - min +1)) + min

Näide5.c
# kaasata
# kaasata
# kaasata
int main ()

int i;
srand (aeg (0));
printf ("10 juhuslikku numbrit vahemikus 0.0 ja 1.0 => \ n ");
jaoks (i = 0; i<10;i++)

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

printf ("\ n");
tagastama 0;


Näites5.c, oleme näinud, kuidas saaksime ujuki 0 vahel juhuslikke arve genereerida.0 ja 1.0 Valem on: (ujuk) rand () / RAND_MAX

Näide6.c
# kaasata
# kaasata
# kaasata
int main ()

int i;
ujuk max, min;
printf ("Sisestage Min väärtus =>");
scanf ("% f", & min);
printf ("Sisestage maksimaalne väärtus =>");
scanf ("% f", & max);
kui (min> max)

printf ("Min väärtus on suurem kui max väärtus \ n");
tagastama 0;

srand (aeg (0));
printf ("10 juhuslikku numbrit vahemikus% f kuni% f => \ n", min, max);
jaoks (i = 0; i<10;i++)

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

printf ("\ n");
tagastama 0;


Näites6.c, oleme võtnud kasutajalt vahemiku ja loonud selles vahemikus juhusliku arvu (mõlemad kaasa arvatud). Valem on: min + ((ujuk) rand () / (RAND_MAX / (max - min)))

Järeldus:

Selles artiklis oleme õppinud, kuidas juhuslikke arve saab genereerida rand () ja srand () funktsioon. Rand-funktsiooni poolt genereeritud juhuslike arvude kvaliteedi kohta pole mingeid garantiisid, kuid see on juhuslikuks kasutamiseks piisavalt hea.

Parimad mängud, mida saab mängida käte jälgimisega
Oculus Quest tutvustas hiljuti suurepärast ideed käsitsi jälgimisest ilma kontrolleriteta. Üha suurema hulga mängude ja tegevustega, mis toetavad kas ...
Kuidas kuvada OSD ülekatet täisekraanil Linuxi rakendustes ja mängudes
Täisekraaniga mängude mängimine või rakenduste kasutamine häireteta täisekraanirežiimis võib teid paneelil või tegumiribal kuvatavast asjakohasest süs...
Viis parimat mängu püüdmise kaarti
Me kõik oleme YouTube'is voogesituse mänge näinud ja armastanud. PewDiePie, Jakesepticye ja Markiplier on vaid mõned tipptasemel mängijatest, kes on t...