Uvod o generatorju naključnih števil v C ++

V našem programiranju se velikokrat pojavi situacija, da številke generiramo naključno. Na primer igra s kockami, razdelitev kartic predvajalnikom, aplikacije za mešanje skladb itd. Za ravnanje s temi stvarmi bi morali imeti nekaj pripomočkov. V C ++ imamo dve orodji za dosego tega generiranja naključnih števil. Najprej si bomo ogledali te funkcije, razumeli njihove potrebe. Kasneje jih bomo uporabili v kodi za dosego funkcionalnosti. Začnimo torej s funkcijami in knjižnico, s katero je povezana. V tej temi bomo spoznali generator naključnih števil v C ++.

Kako ustvariti naključno število?

Da bi dosegli ustvarjanje naključnih števil, C ++ zagotavlja pripomočke. Vsi vemo, da je večina vgrajenih funkcij vključenih v glavno datoteko C ++. Ena takih datotek je stdlib.h. To je standardna knjižnica z veliko vgrajenimi funkcijami, kot so EXIT_FAILURE, EXIT_SUCCESS, RAND_MAX, NULL itd. S pomočjo teh funkcij lahko enostavno najdemo potrebno rešitev. Za izstopanje nam ni treba pisati dolgotrajne logike. Namesto tega lahko preprosto pokličemo eno od teh vgrajenih funkcij glede na naše potrebe. Na enak način imamo za dosego generacije naključnih števil dve vgrajeni funkciji. So randomizirani in randirani. Z uporabo obeh v kombinaciji lahko dosežemo želeni rezultat.

Poglejmo, kakšne so v bistvu te funkcije.

  • randomize () - Ta funkcija je odgovorna za ustvarjanje naključnega števila vsakič, ko zaženete program. Rezultat bo enkraten pri vsaki izvedbi kode. Ta edinstveni rezultat nas bolj zanaša na to funkcijo. Na primer, ko prvič zaženete kodo, bo ustvaril izhod kot 75, 23, 56, 24, 5, 21, 76, 32, 20 in 37. Naslednjič bo ustvaril izhod kot: 5, 64, 51, 78, 94, 53, 41, 19, 96 in 52. V naslednjem razdelku bomo zapisali kodo in brez uporabe te funkcije.
  • rand () - Za generiranje števil od 0 do RAND_MAX-1 bomo uporabili to funkcijo. Tu RAND_MAX pomeni največji možni obseg številke. Recimo, da moramo ustvariti naključna števila v območju, od 0 do 99, potem bo vrednost RAND_MAX 100. Glede na potrebe aplikacije, ki jo želimo zgraditi, izberemo vrednost RAND_MAX. Na primer, če gre za igro s kockami, potem bo RAND_MAX 6. Če je igra s kartami, potem bo RAND_MAX 52 itd.

Upoštevajte le, da sta obe funkciji deklarirani v standardni knjižnici stdlib.h. Zato ne pozabite v svojo kodo vključiti te glave glave. Zdaj pa poglejmo, kako lahko napišemo preprost program za generiranje naključnih števil.

Primer s koraki

Zdaj, ko smo dobili idejo, kako deluje funkcija generatorja naključnih števil, naj napišemo osnovni program, ki bo ustvaril naključno število in natisnil izhod.

Program napišimo korak za korakom, da dobimo boljši vpogled v delujoče.

  • Prvi korak bo vključitev dveh datotek glave, potrebnih za program. Prvi, če h vključuje vhodne in izhodne funkcije. To je glava datoteke vhodno-izhodnega toka. Druga in pomembna datoteka glave je stdlib.h. Kot smo že omenili, ta standardna knjižnica vsebuje dve funkciji, razvrščanje in naključno razvrščanje. Torej oba vključite na začetek kode.

#include
#include
using namespace std;

  • Zdaj, ko smo vključili glave datotek, je naslednji korak pisanje glavne funkcije za izvedbo kode. Za določitev glavne funkcije v naslednjem delu.

int main( )
(
)

  • Izjavite številko, da zadržite in natisnite vrednost naključnega števila. Tip podatkov bo tipa int in bo dal poljubno ime.

int number;

  • Za povečanje vrednosti v zanki potrebujemo števec zanke. Torej prijavite indeks i tipa int. Največja vrednost prirasta bomo definirali v zanki .

int i;

  • Zdaj bomo napisali zanko za tiskanje vrednosti naključno ustvarjenega števila. Zaradi preprostosti tiskamo 10 številk. Tako bo največje število korakov 10.

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

  • Znotraj za zanko bomo zapisali funkcijo rand. Spodnja koda nam pove, da bo poljubno ustvarjeno naključno število razdeljeno s 100, preostalo pa vzamemo. To pomeni, da bodo izpisane številke od 0 do 99. Če želite višja območja, bo število modulov drugačno. To je namesto 100, ki jih lahko postavimo, 150, 200, 100 itd.

number = rand() % 100;

  • V zadnjem koraku bomo natisnili ustvarjeno številko s pomočjo cout.

cout << number << "\t";

  • Izhod kode je spodaj. Upoštevajte, da lahko dobite drugačen izhod, od njegovega generatorja naključnih števil.

  • Težava z zgornjo kodo je, da vsakič, ko zaženemo kodo, dobimo enak nabor izhodnih podatkov. Da se izognemo temu, da moramo uporabiti srand () Tu navajamo čas v tem primeru in ustvarjamo nove vrednosti vsakič, ko zaženemo program.

Oglejmo si celotno kodo s funkcijo 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 izvedbena izhoda kode:

Prva izvedba:

Druga izvedba:

  • Spodaj je koda za generiranje 5 naključnih števil v 1000. Spremenite vrednost števila in si oglejte izhod, ustvarjen vsakič. Primerjajte razlike pri uporabi brez podpisa in brez uporabe.

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

Izhod:

Za prvo iteracijo

Za drugo iteracijo

Zaključek - Generator naključnih števil v C ++

V tem članku smo izvedeli, kaj je generator naključnih števil, potrebe generatorja naključnih števil, vgrajene funkcije C ++ za dosego tega, z in brez uporabe funkcije randomiziranja, pomen standardne knjižnice stdlib.h, navodila po korakih napisati kodo in na koncu primerjati izide dveh različnih pristopov.

Priporočeni članki

To je vodnik za generator naključnih števil v C ++. Tukaj razpravljamo o ustvarjanju naključnega števila skupaj s primeri in koraki. Če želite izvedeti več, si oglejte tudi naslednji članek -

  1. Dostop do modifikatorjev v C ++
  2. Generator naključnih števil v Pythonu
  3. Generator naključnih števil v R
  4. Spremenljivke v C ++
  5. Dostop do modifikatorjev v PHP
  6. Generator naključnih števil v C #
  7. 11 najboljših lastnosti in prednosti C ++
  8. Primeri vgrajenih funkcij Python-a