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

V našem programování mnohokrát dochází k náhodnému vygenerování čísel. Například hra s kostkami, distribuce karet hráčům, aplikace pro míchání písní atd. Abychom tyto věci zvládli, měli bychom mít nějaké nástroje. V C ++ máme dva nástroje k dosažení tohoto generování náhodných čísel. Nejprve se podíváme na tyto funkce, pochopíme jejich potřeby. Později je použijeme v našem kódu k dosažení funkčnosti. Začněme tedy s funkcemi a knihovnou, se kterou je spojena. V tomto tématu se dozvíme o generátoru náhodných čísel v C ++.

Jak vygenerovat náhodné číslo?

K dosažení generování náhodných čísel poskytuje C ++ obslužné programy. Všichni víme, že většina vestavěných funkcí je zahrnuta v souboru záhlaví C ++. Jeden takový soubor záhlaví je stdlib.h. Je to standardní knihovna s mnoha vestavěnými funkcemi, jako je EXIT_FAILURE, EXIT_SUCCESS, RAND_MAX, NULL atd. Pomocí těchto funkcí můžeme snadno získat požadované řešení. Abychom se dostali ven, nemusíme psát zdlouhavou logiku. Místo toho můžeme jednoduše zavolat jednu z těchto vestavěných funkcí podle našich potřeb. Stejným způsobem, abychom dosáhli generování náhodných čísel, máme dvě vestavěné funkce. Jsou náhodné a randové. Jejich kombinací získáme požadovaný výsledek.

Podívejme se, jaké jsou tyto funkce.

  • randomize () - Tato funkce je zodpovědná za generování náhodného čísla při každém spuštění programu. Výsledek bude jedinečný při každém spuštění kódu. Díky tomuto jedinečnému výstupu se na tuto funkci více spoléháme. Například při prvním spuštění kódu bude výstup generován jako 75, 23, 56, 24, 5, 21, 76, 32, 20 a 37. Příště vygeneruje výstup jako: 5, 64, 51, 78, 94, 53, 41, 19, 96 a 52. Uvidíme, jak bude výstup s touto funkcí a bez ní pomocí psaní kódu v následující části.
  • rand () - K vygenerování čísel od 0 do RAND_MAX-1 použijeme tuto funkci. Zde RAND_MAX označuje maximální možný rozsah čísla. Řekněme, že musíme generovat náhodná čísla v rozsahu 0 až 99, pak bude hodnota RAND_MAX 100. Na základě potřeby aplikace, kterou chceme vytvořit, je vybrána hodnota RAND_MAX. Pokud je to například hra s kostkami, pak RAND_MAX bude 6. Pokud je to karetní hra, pak RAND_MAX bude 52 atd.

Jen mějte na paměti, že obě funkce jsou deklarovány ve standardní knihovně stdlib.h. Nezapomeňte do tohoto kódu zahrnout tento soubor záhlaví. Nyní se podívejme, jak můžeme napsat jednoduchý program generování náhodných čísel.

Příklad s kroky

Nyní, když jsme dostali představu o tom, jak funguje funkce generátoru náhodných čísel, napišme základní program, který vygeneruje náhodné číslo a vytiskne výstup.

Napíšeme program krok za krokem, abychom získali lepší přehled o práci.

  • Prvním krokem bude zahrnutí dvou hlavičkových souborů potřebných pro program. První, pokud h obsahuje vstupní a výstupní funkce. Toto je soubor záhlaví vstupního a výstupního proudu. Druhý a důležitý soubor záhlaví je stdlib.h. Jak již bylo uvedeno dříve, tato standardní knihovna obsahuje dvě funkce, rand a randomize. Zahrňte je tedy na začátek kódu.

#include
#include
using namespace std;

  • Nyní, když jsme zahrnuli soubory záhlaví, dalším krokem je napsat hlavní funkci pro provedení kódu. Definování hlavní funkce v další části.

int main( )
(
)

  • Deklarujte číslo, které podrží a vytiskne hodnotu náhodného čísla. Datový typ bude typu int a uvede jakékoli jméno.

int number;

  • Pro zvýšení hodnot ve smyčce potřebujeme počítadlo smyčky. Vyjádřete tedy index i, typu int. Maximální hodnota přírůstku, kterou definujeme pro smyčku .

int i;

  • Nyní napíšeme smyčku for, pro tisk hodnot náhodně vygenerovaného čísla. Pro jednoduchost tiskneme 10 čísel. Maximální počet přírůstků bude tedy 10.

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

  • Uvnitř smyčky zapíšeme funkci Rand. Níže uvedený kód nám říká, že každé vygenerované náhodné číslo bude vyděleno 100 a zbytek bude odebrán. To znamená, že vytištěná čísla budou v rozsahu 0 až 99. Pokud chcete vyšší rozsahy, modulo number se bude lišit. To je místo 100, které můžeme umístit, 150, 200, 100 atd.

number = rand() % 100;

  • V posledním kroku vytiskneme vygenerované číslo pomocí cout.

cout << number << "\t";

  • Výstup kódu je níže. Mějte na paměti, že od generátoru náhodných čísel můžete získat jiný výstup.

  • Problém s výše uvedeným kódem je pokaždé, když spustíme kód, dostane stejnou sadu výstupů. Abychom se tomu vyhnuli, musíme použít srand () Zde odkazujeme na čas v této instanci a generujeme nové hodnoty pokaždé, když spustíme program.

Podívejme se na kompletní kód pomocí funkce 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 prováděcí výstupy kódu:

První provedení:

Druhé provedení:

  • Níže je kód pro generování 5 náhodných čísel z 1000. Změňte hodnotu čísla a podívejte se na výstup generovaný pokaždé. Porovnejte rozdíly v používání nepodepsaného a bez použití.

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

Pro první iteraci

Pro 2. iteraci

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

V tomto článku jsme se dozvěděli, co je generátor náhodných čísel, potřeby generátoru náhodných čísel, vestavěné funkce C ++ k dosažení tohoto cíle, s a bez použití funkce randomize, význam standardní knihovny stdlib.h, instrukce krok za krokem napsat kód a nakonec porovnat výstupy dvou různých přístupů.

Doporučené články

Toto je průvodce generátorem náhodných čísel v C ++. Zde diskutujeme o tom, jak generovat náhodné číslo spolu s příklady a kroky. Další informace naleznete také v následujícím článku -

  1. Přístup modifikátory v C ++
  2. Generátor náhodných čísel v Pythonu
  3. Generátor náhodných čísel v R
  4. Proměnné v C ++
  5. Přístup modifikátory v PHP
  6. Generátor náhodných čísel v C #
  7. Prvních 11 funkcí a výhod C ++
  8. Příklady vestavěných funkcí Pythonu

Kategorie: