Sissejuhatus juhuslike arvude generaatorisse C ++

Meie programmeerimisel tekib mitu korda olukord, kus numbrid genereeritakse juhuslikult. Näiteks täringumäng, kaardi jagamine mängijatele, rakendused lugude segamiseks jne. Nende asjadega toimetulemiseks peaksid meil olema mõned utiliidid. C ++ versioonis on meil juhuslike arvude genereerimiseks kaks utiliiti. Esiteks vaatame neid funktsioone, mõistame nende vajadusi. Hiljem kasutame neid funktsioonide saavutamiseks oma koodis. Alustame funktsioonidest ja raamatukogust, millega see on seotud. Selles teemas õpime juhuslike arvude generaatori kohta C ++-s.

Kuidas genereerida juhuslikku arvu?

Juhuslike arvude genereerimiseks pakub C ++ utiliite. Me kõik teame, et enamik sisseehitatud funktsioone sisaldub C ++ päisefailis. Üks selline päisefail on stdlib.h. See on tavaline raamatukogu, millel on palju sisseehitatud funktsioone, näiteks EXIT_FAILURE, EXIT_SUCCESS, RAND_MAX, NULL jne. Neid funktsioone kasutades saame hõlpsalt vajaliku lahenduse. Väljapääsu saamiseks ei pea me kirjutama pikka loogikat. Selle asemel võime oma vajadustele vastavalt ühe neist sisseehitatud funktsioonidest lihtsalt nimetada. Samamoodi on juhusliku arvu genereerimise saavutamiseks kaks sisseehitatud funktsiooni. Nad on randomiseeritud ja rand. Neid mõlemaid koos kasutades saame soovitud tulemuse.

Vaatame, mis need funktsioonid põhimõtteliselt on.

  • randomize () - see funktsioon vastutab juhusliku arvu genereerimise eest iga kord, kui programmi käivitate. Tulemus on kordumatu, kui kood käivitatakse. See ainulaadne väljund paneb meid selle funktsiooni suhtes rohkem lootma. Näiteks genereerib see kood esimest korda väljundina 75, 23, 56, 24, 5, 21, 76, 32, 20 ja 37. Järgmine kord genereerib väljund järgmiselt: 5, 64, 51, 78, 94, 53, 41, 19, 96 ja 52. Näeme järgmises jaotises koodi kirjutades, kuidas väljund saab selle funktsiooniga ja ilma selleta.
  • rand () - numbrite 0-st RAND_MAX-1 genereerimiseks kasutame seda funktsiooni. RAND_MAX tähistab siin numbri maksimaalset võimalikku vahemikku. Oletame, et peame genereerima juhuslikud numbrid vahemikus 0 kuni 99, siis on RAND_MAX väärtus 100. RAND_MAX väärtus valitakse selle rakenduse vajaduse põhjal, mida soovime ehitada. Näiteks kui see on täringumäng, siis RAND_MAX on 6. Kui see on kaardimäng, siis RAND_MAX on 52 jne.

Pidage ainult meeles, et mõlemad funktsioonid on deklareeritud standardses teegis stdlib.h. Nii et ärge unustage lisada see päisefail oma koodi. Nüüd vaatame, kuidas saaksime kirjutada lihtsa juhuslike arvude genereerimise programmi.

Näide sammudega

Nüüd, kui saime idee juhuslike arvude generaatori funktsiooni toimimisest, kirjutame põhiprogrammi, mis genereerib juhusliku arvu ja prindib väljundi.

Kirjutame programmi samm-sammult, et saada rohkem ülevaade tööst.

  • Esimene samm on programmi jaoks vajalike kahe päisefaili kaasamine. Esimene, kui h sisaldab sisend- ja väljundfunktsioone. See on sisend-väljundvoo päisefail. Teine ja oluline päisefail on stdlib.h. Nagu varem arutatud, sisaldab see standardne raamatukogu kahte funktsiooni: rand ja randomiseerida. Lisage mõlemad koodi algusesse.

#include
#include
using namespace std;

  • Nüüd, kui oleme lisanud päisefailid, on järgmine samm koodi täitmise põhifunktsiooni kirjutamine. Põhifunktsiooni määratlemiseks järgmises osas.

int main( )
(
)

  • Kuulutage number juhusliku arvu hoidmiseks ja printige see. Andmetüüp on tüüpi int ja annab suvalise nime.

int number;

  • Silmuse väärtuste suurendamiseks vajame silmusloendurit. Nii kuulutage indeks i, tüübi int. Maksimaalne juurdekasvu väärtus, mille määratleme silmuse jaoks .

int i;

  • Nüüd kirjutame silmuse jaoks juhuslikult genereeritud arvu väärtuste printimiseks. Lihtsuse huvides trükime 10 numbrit. Maksimaalne sammude arv on 10.

for(i = 1; i <= 10; i++)
(
)

  • Silmuse jaoks kirjutame Rand funktsiooni. Allpool olev kood ütleb meile, et iga loodud juhuslik arv jagatakse 100-ga ja ülejäänud osa võetakse. See tähendab, et trükitud numbrid jäävad vahemikku 0 kuni 99. Suuremate vahemike korral on modulo number erinev. See tähendab, et 100 asemel saame paigutada, 150, 200, 100 jne.

number = rand() % 100;

  • Viimases etapis prindime loodud numbri, kasutades cout.

cout << number << "\t";

  • Koodi väljund on järgmine. Pidage meeles, et võite saada erinevat väljundit, kuna selle juhuslike arvude generaator.

  • Ülaltoodud koodi probleem on see, et iga kord, kui käivitate koodi, saadakse sama väljundkomplekt. Selle vältimiseks peame kasutama srand (). Siin viidatakse sellele esinemisjuhule ja genereeritakse uued väärtused iga kord, kui programmi käivitame.

Vaatame täielikku koodi srand-funktsiooniga.

#include
#include
using namespace std;
int main( )
(
int number;
int i;
srand(time(0));
for(i = 1; i <= 10; i++)
(
number = rand() % 100;
cout << number << "\t";
)
)

Koodi kaks täitmisväljundit:

Esimene teostus:

Teine hukkamine:

  • Allpool on kood 5 juhusliku arvu genereerimiseks 1000 piires. Muutke numbri väärtust ja vaadake igal ajal genereeritud väljundit. Võrrelge allkirjastamata ja kasutamata kasutamise erinevusi.

#include
#include
#include
int main ()
(
int i, number;
time_t nTime;
number = 5;
srand((unsigned) time(&nTime));
printf("Random numbers are: \n");
for( i = 0 ; i < number ; i++ )
(
printf("%d\n", rand() % 1000);
)
return(0);
)

Väljund:

Esimese iteratsiooni jaoks

Teise iteratsiooni jaoks

Järeldus - juhuslike arvude generaator C ++-s

Selles artiklis oleme õppinud, mis on juhuslike arvude generaator, juhuslike arvude generaatori vajadused, C ++ sisseehitatud funktsioonid selle saavutamiseks koos randomiseerimisfunktsiooniga ja ilma selleta, standardse raamatukogu stdlib.h olulisus, samm-sammult juhised kirjutada kood ja lõpuks kahe erineva lähenemisviisi väljundite võrdlus.

Soovitatavad artiklid

See on juhend juhuslike arvude generaatorisse C ++-s. Siin käsitleme juhusliku arvu genereerimist koos näidete ja sammudega. Lisateabe saamiseks võite vaadata ka järgmist artiklit -

  1. Juurdepääs modifikaatoritele rakenduses C ++
  2. Juhuslike arvude generaator Pythonis
  3. Juhuslike arvude generaator R-s
  4. C ++ muutujad
  5. Juurdepääs modifikaatoritele PHP-s
  6. Juhuslike arvude generaator C-numbris
  7. C ++ 11 peamist funktsiooni ja eelist
  8. Näited Pythoni sisseehitatud funktsioonidest

Kategooria: