Úvod do generátora náhodných čísel v C ++

V našom programovaní sa mnohokrát vyskytuje situácia, pri ktorej sa čísla generujú náhodne. Napríklad hra s kockami, distribúcia kariet hráčom, aplikácie na zamiešanie skladieb atď. Aby sme tieto veci zvládli, mali by sme mať nejaké pomôcky. V C ++ máme dva nástroje na dosiahnutie tohto generovania náhodných čísel. Najprv sa pozrieme na tieto funkcie, pochopíme ich potreby. Neskôr ich použijeme v našom kóde na dosiahnutie funkčnosti. Začnime teda funkciami a knižnicou, s ktorou je spojená. V tejto téme sa dozvieme viac o generátore náhodných čísel v jazyku C ++.

Ako generovať náhodné číslo?

Na dosiahnutie generovania náhodných čísel poskytuje pomôcky C ++. Všetci vieme, že väčšina vstavaných funkcií je zahrnutá v súbore hlavičky C ++. Jedným takýmto hlavičkovým súborom je stdlib.h. Je to štandardná knižnica, ktorá má mnoho zabudovaných funkcií, ako EXIT_FAILURE, EXIT_SUCCESS, RAND_MAX, NULL atď. Pomocou týchto funkcií môžeme ľahko získať požadované riešenie. Aby sme sa dostali von, nemusíme písať zdĺhavú logiku. Namiesto toho môžeme jednoducho nazvať jednu z týchto vstavaných funkcií podľa našich potrieb. Rovnakým spôsobom, aby sme dosiahli generovanie náhodných čísel, máme dve vstavané funkcie. Sú náhodne vybraní. Použitím oboch kombinácií môžeme dosiahnuť požadovaný výsledok.

Pozrime sa, aké sú tieto funkcie.

  • randomize () - Táto funkcia je zodpovedná za generovanie náhodného čísla pri každom spustení programu. Výsledok bude jedinečný pri každom spustení kódu. Tento jedinečný výstup nás viac spolieha na túto funkciu. Napríklad pri prvom spustení kódu bude výstup generovaný ako 75, 23, 56, 24, 5, 21, 76, 32, 20 a 37. Nabudúce vygeneruje výstup ako: 5, 64, 51, 78, 94, 53, 41, 19, 96 a 52. Uvidíme, aký bude výstup s touto funkciou a bez nej, a to napísaním kódu v nasledujúcej časti.
  • rand () - Na vygenerovanie čísel od 0 do RAND_MAX-1 použijeme túto funkciu. Tu RAND_MAX znamená maximálny možný rozsah čísla. Povedzme, že musíme vygenerovať náhodné čísla v rozsahu 0 až 99, potom bude hodnota RAND_MAX 100. Na základe potreby aplikácie, ktorú chceme zostaviť, sa vyberie hodnota RAND_MAX. Napríklad, ak ide o kockovú hru, potom bude RAND_MAX 6. Ak je to kartová hra, potom bude RAND_MAX 52 atď.

Nezabudnite, že obe funkcie sú deklarované v štandardnej knižnici stdlib.h. Nezabudnite teda zahrnúť tento súbor hlavičky do svojho kódu. Teraz sa pozrime, ako môžeme napísať jednoduchý program na generovanie náhodných čísel.

Príklad s krokmi

Teraz, keď sme dostali predstavu o tom, ako funguje funkcia generátora náhodných čísel, napíšme základný program, ktorý vygeneruje náhodné číslo a vytlačí výstup.

Poďme napísať program krok za krokom, aby sme získali lepší prehľad o práci.

  • Prvým krokom bude zahrnutie dvoch hlavičkových súborov potrebných pre program. Prvý, ak h obsahuje vstupné a výstupné funkcie. Toto je súbor hlavičky vstupného a výstupného toku. Druhý a dôležitý súbor hlavičky je stdlib.h. Ako už bolo uvedené vyššie, táto štandardná knižnica obsahuje dve funkcie, rand a randomize. Zahrňte ich teda na začiatok kódu.

#include
#include
using namespace std;

  • Teraz, keď sme zahrnuli hlavičkové súbory, je ďalším krokom napísať hlavnú funkciu na vykonanie kódu. Definovanie hlavnej funkcie v ďalšej časti.

int main( )
(
)

  • Vyhláste číslo, ktoré podrží a vytlačí hodnotu náhodného čísla. Typ údajov bude typu int a uvedie akékoľvek meno.

int number;

  • Potrebujeme počítadlo slučky na zvýšenie hodnôt v slučke. Preto deklarujte index i, typu int. Maximálna hodnota prírastku, ktorú definujeme pre cyklus .

int i;

  • Teraz napíšeme slučku for for, pre tlač hodnôt náhodne vygenerovaného čísla. Pre jednoduchosť tlačíme 10 čísel. Maximálny počet prírastkov bude 10.

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

  • Vo vnútri pre slučku napíšeme funkciu Rand. Nižšie uvedený kód hovorí, že akékoľvek vygenerované náhodné číslo sa vydelí číslom 100 a zvyšok sa odoberie. To znamená, že vytlačené čísla budú v rozsahu 0 až 99. Ak chcete vyššie rozsahy, modulo number sa bude líšiť. To je namiesto 100, ktoré môžeme umiestniť, 150, 200, 100 atď.

number = rand() % 100;

  • V poslednom kroku vytlačíme vygenerované číslo pomocou cout.

cout << number << "\t";

  • Výstup kódu je uvedený nižšie. Majte na pamäti, že od generátora náhodných čísel môžete získať iný výstup.

  • Problém s vyššie uvedeným kódom je zakaždým, keď spustíme kód, ktorý získa rovnakú sadu výstupov. Aby sme sa tomu vyhli, musíme použiť srand () Tu uvádzame čas v tejto inštancii a generujeme nové hodnoty pri každom spustení programu.

Pozrime sa na kompletný kód pomocou funkcie 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 výkonové výstupy kódu:

Prvé spustenie:

Druhé vykonanie:

  • Nižšie je uvedený kód na generovanie 5 náhodných čísel v rámci 1 000. Zmeňte hodnotu čísla a pozrite sa na výstup generovaný zakaždým. Porovnajte rozdiely medzi používaním bez znamienka a bez použitia.

#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ýkon:

Pre 1. iteráciu

Pre 2. iteráciu

Záver - Generátor náhodných čísel v C ++

V tomto článku sme sa naučili, čo je generátor náhodných čísel, potreby generátora náhodných čísel, vstavané funkcie C ++ na dosiahnutie tohto cieľa, s a bez použitia funkcie randomize, význam štandardnej knižnice stdlib.h, pokyny krok za krokom napísať kód a nakoniec porovnať výstupy dvoch rôznych prístupov.

Odporúčané články

Toto je sprievodca generátorom náhodných čísel v C ++. Tu diskutujeme o tom, ako generovať náhodné číslo spolu s príkladmi a krokmi. Viac informácií nájdete aj v nasledujúcom článku -

  1. Modifikátory prístupu v C ++
  2. Generátor náhodných čísel v Pythone
  3. Generátor náhodných čísel v R
  4. Premenné v C ++
  5. Modifikátory prístupu v PHP
  6. Generátor náhodných čísel v C #
  7. Prvých 11 funkcií a výhod C ++
  8. Príklady zabudovaných funkcií Pythonu

Kategórie: