Tilfeldig nummergenerator i C ++ - Hvordan generere tilfeldig nummer?

Innholdsfortegnelse:

Anonim

Introduksjon om tilfeldig tallgenerator i C ++

Mange ganger i vår programmering oppstår det en situasjon for å generere tallene tilfeldig. For eksempel terningspill, kortfordeling til spillere, apper for blanding av sangene, etc. For å håndtere disse tingene, bør vi ha noen verktøy. I C ++ har vi to verktøy for å oppnå denne tilfeldige tallgenerasjonen. Først skal vi se på disse funksjonene, forstå deres behov. Senere vil vi bruke dem i koden vår for å oppnå funksjonaliteten. Så la oss starte med funksjonene og biblioteket det er knyttet til. I dette emnet skal vi lære om Random Number Generator i C ++.

Hvordan generere tilfeldig nummer?

For å oppnå generering av tilfeldige tall gir C ++ verktøyene. Vi vet alle at de fleste av de innebygde funksjonene er inkludert i overskriftsfilen til C ++. En slik headerfil er stdlib.h. Det er et standardbibliotek som har mange innebygde funksjoner som EXIT_FAILURE, EXIT_SUCCESS, RAND_MAX, NULL, etc. Ved å bruke disse funksjonene kan vi enkelt få den nødvendige løsningen. Vi trenger ikke skrive lang logikk for å få ut. I stedet kan vi ganske enkelt kalle en av disse innebygde funksjonene etter våre behov. På samme måte, for å oppnå en tilfeldig tallgenerering, har vi to innebygde funksjoner. De er randomiserte og rand. Ved å bruke begge i kombinasjon kan vi få ønsket resultat.

La oss se hva disse funksjonene i utgangspunktet er.

  • randomize () - Denne funksjonen er ansvarlig for å generere et tilfeldig tall hver gang du kjører programmet. Resultatet vil være unikt hver gang kjøring av koden. Denne unike utgangen får oss til å stole mer på denne funksjonen. For eksempel første gang du kjører koden vil den generere utgangen som 75, 23, 56, 24, 5, 21, 76, 32, 20 og 37. Neste gang den genererer output som: 5, 64, 51, 78, 94, 53, 41, 19, 96 og 52. Vi får se hvordan utgangen vil være med og uten å bruke denne funksjonen, ved å skrive kode i neste avsnitt.
  • rand () - For å generere tallene fra 0 til RAND_MAX-1 vil vi bruke denne funksjonen. Her angir RAND_MAX maksimalt mulig rekkevidde for tallet. La oss si at vi trenger å generere tilfeldige tall i området 0 til 99, da vil verdien til RAND_MAX være 100. Basert på behovet til applikasjonen vi vil bygge, blir verdien av RAND_MAX valgt. For eksempel, hvis det er et terningspill, vil RAND_MAX være 6. Hvis det er et kortspill, vil RAND_MAX være 52 osv.

Bare husk at begge funksjonene er deklarert i standardbiblioteket stdlib.h. Så ikke glem å ta med denne overskriftsfilen i koden din. La oss nå se hvordan vi kan skrive et enkelt generatorprogram for tilfeldig tall.

Eksempel med trinn

Nå som vi fikk en ide om hvordan funksjonen til tilfeldig tallgenerator fungerer, la oss skrive et grunnleggende program som vil generere et tilfeldig tall og skrive ut utdataene.

La oss skrive programmet trinn for trinn for å få mer innsikt i arbeidet.

  • Det første trinnet vil være å inkludere de to headerfilene som trengs for programmet. Den første hvis h skal inkludere inngangs- og utgangsfunksjonalitetene. Dette er input-output stream overskriftsfil. Den andre og viktige headerfilen er stdlib.h. Som diskutert tidligere inneholder dette standardbiblioteket de to funksjonene, rand og randomiserer. Ta derfor med begge deler på begynnelsen av koden.

#include
#include
using namespace std;

  • Nå som vi har tatt med overskriftsfilene, er neste trinn å skrive hovedfunksjonen for utførelse av koden. For å definere hovedfunksjonen i neste del.

int main( )
(
)

  • Angi et nummer for å holde og skrive ut verdien til det tilfeldige tallet. Datatypen vil være av typen int og gi hvilket som helst navn.

int number;

  • Vi trenger en sløyfeteller for å øke verdiene i løkken. Så erklær indeksen i, av typen int. Maksimumsverdien for trinn vil vi definere i for loop .

int i;

  • Nå skal vi skrive en for loop, for å skrive ut verdiene til det tilfeldig genererte tallet. For enkelhets skyld skriver vi ut 10 tall. Så det maksimale antallet trinn vil være 10.

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

  • Innvendig for loop vil vi skrive randfunksjonen. Nedenstående kode forteller oss at et vilkårlig tilfeldig tall blir delt med 100 og resten blir tatt. Det betyr at tallene som skrives ut vil være fra 0 til 99. Hvis du vil ha høyere intervaller, vil modulnummeret være forskjellig. Det er i stedet for 100 vi kan plassere, 150, 200, 100 osv.

number = rand() % 100;

  • I det siste trinnet skriver vi ut det genererte nummeret ved hjelp av cout.

cout << number << "\t";

  • Kodens utgang er som nedenfor. Husk at du kan få forskjellige utskrifter, siden dens tilfeldige tallgenerator.

  • Problemet med koden ovenfor er hver gang vi kjører vil koden få samme sett med utdata. For å unngå at vi må bruke srand () Her viser vi tiden til det tidspunktet og genererer de nye verdiene hver gang vi kjører programmet.

La oss se på den komplette koden med srand-funksjonen.

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

To utførelsesutganger av koden:

Første henrettelse:

Andre henrettelse:

  • Nedenfor er koden for å generere 5 tilfeldige tall i løpet av 1000. Endre verdien på tallet og se output generert hver gang. Sammenlign forskjellene ved å bruke usignerte og uten å bruke.

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

Produksjon:

For 1. iterasjon

For 2. iterasjon

Konklusjon - Tilfeldig tallgenerator i C ++

I denne artikkelen har vi lært hva som er en tilfeldig tallgenerator, behovene til tilfeldig tallgenerator, innebygde funksjoner for C ++ for å oppnå dette, med og uten å bruke randomiseringsfunksjonen, betydningen av standardbiblioteket stdlib.h, trinnvise instruksjoner å skrive koden og til slutt sammenligning av output fra to forskjellige tilnærminger.

Anbefalte artikler

Dette er en guide til Random Number Generator i C ++. Her diskuterer vi Hvordan generere tilfeldig nummer sammen med eksempler og trinn. Du kan også se på følgende artikkel for å lære mer -

  1. Få tilgang til modifikatorer i C ++
  2. Tilfeldig nummergenerator i Python
  3. Tilfeldig nummergenerator i R
  4. Variabler i C ++
  5. Få tilgang til modifikatorer i PHP
  6. Tilfeldig nummergenerator i C #
  7. Topp 11 funksjoner og fordeler med C ++
  8. Eksempler på innebygde Python-funksjoner