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.
# 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.
# 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
# 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
# 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.