Uvod o generatoru slučajnih brojeva u C ++

Često se u našem programiranju pojavljuje situacija za generiranje brojeva nasumično. Na primjer, igra s kockicama, distribucija karata igračima, aplikacije za miješanje pjesama itd. Da bismo upravljali tim stvarima, trebali bismo imati neke alate. U C ++ imamo dvije alate za postizanje ove generacije slučajnih brojeva. Prvo ćemo pogledati te funkcije, razumjeti njihove potrebe. Kasnije ćemo ih koristiti u našem kodu za postizanje funkcionalnosti. Pa započnimo s funkcijama i knjižnicom s kojom je povezana. U ovoj ćemo temi saznati više o Generatoru slučajnih brojeva u C ++.

Kako generirati slučajni broj?

Da bi se postigla generacija slučajnih brojeva, C ++ pruža uslužne programe. Svi znamo da je većina ugrađenih funkcija uključena u datoteku zaglavlja C ++. Jedna takva datoteka zaglavlja je stdlib.h. To je standardna biblioteka koja ima mnogo ugrađenih funkcija poput EXIT_FAILURE, EXIT_SUCCESS, RAND_MAX, NULL, itd. Pomoću ovih funkcija lako možemo dobiti traženo rješenje. Ne trebamo pisati dugačku logiku da bismo izašli van. Umjesto toga, možemo jednostavno nazvati jednu od tih ugrađenih funkcija prema našim potrebama. Na isti način, za postizanje generiranja slučajnih brojeva, imamo dvije ugrađene funkcije. Oni su nasumični i randirani. Upotrebljavajući ih oboje u kombinaciji možemo postići željeni rezultat.

Pogledajmo što su zapravo te funkcije.

  • randomize () - Ova je funkcija odgovorna za stvaranje slučajnog broja pri svakom pokretanju programa. Rezultat će biti jedinstven prilikom svakog izvršavanja koda. Ovaj jedinstveni izlaz čini da se više oslanjamo na ovu funkciju. Primjerice, prvi put kada pokrenete kôd generirat će izlaz kao 75, 23, 56, 24, 5, 21, 76, 32, 20 i 37. Sljedeći put će generirati izlaz kao: 5, 64, 51, 78, 94, 53, 41, 19, 96 i 52. Vidjet ćemo kakav će biti izlaz s i bez korištenja ove funkcije, pisanjem koda u sljedećem odjeljku.
  • rand () - Za generiranje brojeva od 0 do RAND_MAX-1 koristit ćemo ovu funkciju. Ovdje RAND_MAX označava maksimalni mogući raspon broja. Recimo da trebamo generirati slučajne brojeve u rasponu, 0 do 99, tada će vrijednost RAND_MAX biti 100. Na temelju potrebe aplikacije koju želimo izgraditi, odabire se vrijednost RAND_MAX. Na primjer, ako je igra s kockicama, tada će RAND_MAX biti 6. Ako je kartaška igra, tada će RAND_MAX biti 52 itd.

Imajte na umu da su obje funkcije deklarirane u standardnoj biblioteci stdlib.h. Zato ne zaboravite u svoj kôd uključiti ovu zaglavlje. Pogledajmo sada kako možemo napisati jednostavan program za generiranje slučajnih brojeva.

Primjer s koracima

Sada kada smo dobili ideju o tome kako funkcionira funkcija generatora slučajnih brojeva, neka nam napiše osnovni program koji će generirati slučajni broj i ispisati izlaz.

Pišemo program korak po korak kako bismo stekli više uvida u rad.

  • Prvi korak bit će uključivanje dviju datoteka zaglavlja potrebnih programu. Prvi ako h uključuje ulazne i izlazne funkcionalnosti. Ovo je datoteka zaglavlja ulaz-izlaz. Druga i važna datoteka zaglavlja je stdlib.h. Kao što je ranije spomenuto, ova standardna knjižnica sadrži dvije funkcije, randiranje i slučajno odabiranje. Dakle, uključite oba na početku koda.

#include
#include
using namespace std;

  • Sada kada smo uključili datoteke zaglavlja, sljedeći korak je pisanje glavne funkcije za izvršenje koda. Za definiranje glavne funkcije u sljedećem dijelu.

int main( )
(
)

  • Deklarirajte broj da biste zadržali i ispisali vrijednost slučajnog broja. Tip podataka će biti tipa int i dati bilo koje ime.

int number;

  • Potreban nam je brojač petlje za povećanje vrijednosti u petlji. Dakle, deklarirajte indeks i, tipa int. Maksimalna vrijednost prirasta ćemo definirati za petlju .

int i;

  • Sada ćemo napisati petlju za, za ispis vrijednosti nasumično generiranog broja. Radi jednostavnosti ispisujemo 10 brojeva. Dakle, maksimalan broj priraštaja bit će 10.

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

  • Unutar petlje ćemo napisati funkciju rand. Koda u nastavku govori da će bilo koji generirani slučajni broj biti podijeljen sa 100, a ostatak uzet. To znači da će brojevi ispisani biti od 0 do 99 u rasponu. Ako želite veći raspon, broj modula bit će drugačiji. To je umjesto 100 koje možemo smjestiti, 150, 200, 100, itd.

number = rand() % 100;

  • U posljednjem koraku ispisat ćemo generirani broj pomoću cout-a.

cout << number << "\t";

  • Izlaz koda je dolje naveden. Imajte na umu da možete dobiti različit izlaz, od njegovog slučajnog brojača.

  • Problem sa gornjim kodom je svaki put kada pokrenemo kôd dobit će isti izlaz. Da bismo izbjegli da moramo koristiti srand () Ovdje navodimo vrijeme u toj instanci i generiramo nove vrijednosti svaki put kada pokrenemo program.

Pogledajmo kompletan kod s funkcijom srand.

#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";
)
)

Dva izvršna izlaza koda:

Prvo izvršenje:

Drugo izvršenje:

  • Ispod je kôd za generiranje 5 slučajnih brojeva unutar 1000. Promijenite vrijednost broja i pogledajte izlaz koji se generira u svakom trenutku. Usporedite razlike kod upotrebe nenapisanih i bez upotrebe.

#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);
)

Izlaz:

Za prvu iteraciju

Za drugu iteraciju

Zaključak - Generator slučajnih brojeva u C ++

U ovom smo članku naučili što je generator slučajnih brojeva, potrebe generatora slučajnih brojeva, ugrađene funkcije C ++ da bi se to postiglo, uz upotrebu i slučajno korištenje funkcije, značaj standardne biblioteke stdlib.h, detaljne upute napisati kod i na kraju usporediti rezultate dvaju različitih pristupa.

Preporučeni članci

Ovo je vodič za Generator slučajnih brojeva u C ++. Ovdje smo raspravljali o stvaranju slučajnog broja zajedno s primjerima i koracima. Možete pogledati i sljedeći članak da biste saznali više -

  1. Pristupite modifikatorima na C ++
  2. Generator slučajnih brojeva u Pythonu
  3. Generator slučajnih brojeva u R
  4. Varijable u C ++
  5. Pristupite modifikatorima na PHP-u
  6. Generator slučajnih brojeva u C #
  7. Top 11 značajki i prednosti C ++
  8. Primjeri ugrađenih funkcija Python-a

Kategorija: