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

Aby bylo možné vygenerovat očekávaný výstup, musí program potřebovat správný vstup. Vstupy obvykle poskytuje uživatel, ale někdy si program musí vybrat vstup sám. Například pro získání aktuálního časového razítka aplikace používá vestavěnou funkci pro její načtení ze systému. Stejným způsobem někdy potřebujeme, aby aplikace vygenerovala libovolné náhodné číslo, které by bylo možné dále zpracovat, abychom získali předpokládaný výstup. Přestože to vypadá uživateli náhodně, programovací jazyk nám nabízí mechanismus pro definování rozsahu náhodného čísla. V tomto článku se podíváme na implementaci programu generování náhodných čísel pomocí programovacího jazyka C. Zaměříme se na vestavěnou funkci, kterou poskytuje C, abychom vygenerovali náhodné číslo.

Co je funkce generátoru náhodných čísel v C?

Existuje několik přístupů k vygenerování náhodného čísla pomocí libovolného programovacího jazyka. Jeden může definovat funkci svého vlastního způsobu odhadu nebo generování náhodného čísla, zatímco existují vestavěné funkce v kterémkoli z programovacího jazyka, který generuje náhodné číslo. V programovacím jazyce C máme funkci zvanou rand, která pomáhá při generování náhodného čísla. Tato funkce je předdefinována v C a může být implementována do programu pomocí souboru záhlaví stdlib.h. Vývojář musí zmínit soubor záhlaví stdlib.h na začátku programu, aby se využila funkce rand. Kdykoli se tato funkce nazývá, vygeneruje zcela náhodné číslo. Na základě požadavku lze vygenerovat číslo, které patří do celočíselného, ​​pohyblivého nebo dvojitého datového typu. Lze jej jednoduše použít v programu pomocí funkce rand ().

Přestože má funkce rand generovat náhodnou hodnotu, přilepila se ke generování stejné hodnoty při každém spuštění programu a může se to stát díky konstantní hodnotě osiva. Pokud je požadavek na generování nového náhodného čísla při každém spuštění programu, musíme zajistit, aby se semeno při každém spuštění programu měnilo. Čas je něco, co se neustále mění a lze jej také pokládat za něco, co může pomoci získat pokaždé náhodnou hodnotu a použít čas v programu, musíme použít soubor záhlaví time.h.

Generační celá čísla

Funkce rand () se používá k vygenerování náhodného čísla. Pokaždé, když se volá, dává náhodné číslo. Pokud vývojáři k tomu přidají nějakou logiku, mohou vygenerovat náhodné číslo v definovaném rozsahu a pokud rozsah není explicitně definován, vrátí zcela náhodnou celočíselnou hodnotu. Funkce rand () v C by mohla být použita pro vygenerování náhodného čísla a vygenerované číslo je zcela mazání semene. Semeno je hodnota, kterou používá funkce rand k vygenerování náhodné hodnoty. Pokud se hodnota zárodku stále mění, vygenerované číslo bude nové při každém kompilaci programu, jinak vrátí stejnou hodnotu pokaždé, když bylo vygenerováno při prvním spuštění programu. Za účelem vygenerování níže je program generující celé číslo náhodného čísla.

Program

#include
#include
#include
int main()
(
int rand_num;
srand(time(0));
printf("The randomly generated number is”);
rand_num = rand();
printf("%d\n", rand_num);
)
)

Výstup:

Náhodně vygenerované číslo je 1804289383.

V tomto programu jsme použili soubor záhlaví time.h, který se používá k využití systémového času při generování náhodného čísla. Jak se čas mění pokaždé, hodnota semene se změní pokaždé, když se program spustí, což nám pomáhá generovat náhodné číslo při každém spuštění programu. Rand_num je proměnná, která se používá k uložení náhodně vygenerovaného čísla. Funkce rand () generuje náhodné číslo, které je přiřazeno proměnné rand_num. Protože jsme explicitně nedefinovali návratovou hodnotu náhodného čísla, dá nám celé číslo.

Generování čísel Float Point

Přístup k vygenerování náhodné plovoucí hodnoty je podobný přístupu pro generování celého čísla. Jediným rozdílem je, že budeme muset explicitně definovat, že hodnota, kterou očekáváme od funkce rand, by měla být plovák. Hodnota float obvykle spotřebovává více místa v úložišti ve srovnání s krátkou int. Program, který jsme napsali výše pro náhodné generování celočíselných hodnot, bude stejný jako zde. Jediným rozdílem bude explicitní definice datového typu. Podobně jako v minulém programu jsme zde použili také hlavičkový soubor time.h, abychom jej mohli přispět k generování náhodných čísel. Pokud tento soubor záhlaví není součástí programu, bude mít stejnou hodnotu při každém programu. Je popraven. Níže je uveden program pro generování náhodných hodnot float.

Program

#include
#include
#include
int main()
(
float rand_num;
srand(time(0));
printf("The randomly generated float number is ”);
rand_num = (float) rand();
printf("%f", rand_num);
)
)

Výstup:

V tomto programu jsme použili (float), který se používá k výslovnému definování, že hodnota vrácená z funkce rand by měla být float v přírodě. Protože proměnná ran_num je také definována s datovým typem float, bude schopna zpracovat číslo float, které obvykle má šest desetinných míst za desetinnou čárkou, když je generováno v programovacím jazyce C. Při tisku hodnoty float jsme použili% f, protože je to něco, o co je třeba při tisku float dbát.

Závěr

Pro zvýšení náhodnosti čísla je možné využít matematické výrazy. Pomocí logiky lze také definovat rozsah čísel, pod nimiž chtějí, aby bylo číslo generováno náhodně. Funkce generování náhodného kaučuku je poskytována všemi programovacími jazyky a používá se ve skutečné aplikaci na základě požadavku. Abychom zajistili silnou náhodnost čísla, musíme se ujistit, že klíčové slovo, které se používá ke generování náhodné hodnoty, by mělo být při každém spuštění programu velmi náhodné a nové.

Doporučené články

Toto je průvodce generátorem náhodných čísel v C. Zde diskutujeme o funkci, generování celých čísel a generování čísel s pohyblivou řádovou čárkou v C. Další informace naleznete také v našich dalších doporučených článcích -

  1. Generátor náhodných čísel v R
  2. Co je třída šablon v C ++?
  3. Algoritmus náhodného lesa
  4. Rámce v Javě
  5. Co je generátor náhodných čísel v Pythonu?
  6. Generátor náhodných čísel v C ++ (příklady s kroky)
  7. Generátor náhodných čísel v Matlabu
  8. Generátor náhodných čísel v C #
  9. Generátor náhodných čísel v JavaScriptu
  10. Generátor náhodných čísel v PHP

Kategorie: