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

Aby sa vygeneroval očakávaný výstup, program musí potrebovať správny vstup. Vstupy zvyčajne poskytuje užívateľ, ale niekedy si program musí vybrať vstup sám. Napríklad na získanie aktuálnej časovej pečiatky aplikácia používa zabudovanú funkciu na jej získanie zo systému. Rovnakým spôsobom niekedy potrebujeme, aby aplikácia vygenerovala akékoľvek náhodné číslo, ktoré by sa mohlo ďalej spracovať, aby sa získal predpokladaný výstup. Aj keď to pre užívateľa vyzerá náhodne, programovací jazyk nám ponúka mechanizmus na definovanie rozsahu náhodného čísla. V tomto článku si ukážeme implementáciu programu generovania náhodných čísel pomocou programovacieho jazyka C. Zameriame sa na zabudovanú funkciu, ktorú poskytuje C, aby sme vygenerovali náhodné číslo.

Čo je funkcia generátora náhodných čísel v jazyku C?

Existuje niekoľko prístupov na generovanie náhodných čísel pomocou ľubovoľného programovacieho jazyka. Dá sa definovať vlastným spôsobom, ako odhadnúť alebo vygenerovať náhodné číslo, zatiaľ čo v ľubovoľnom programovacom jazyku, ktorý generuje náhodné číslo, sú zabudované funkcie. V programovacom jazyku C máme funkciu nazývanú rand, ktorá pomáha pri generovaní náhodného čísla. Táto funkcia je preddefinovaná v C a môže byť implementovaná do programu pomocou súboru záhlavia stdlib.h. Vývojár musí spomenúť hlavičkový súbor stdlib.h na začiatku programu, aby sa využila funkcia rand. Zakaždým, keď sa táto funkcia nazýva, generuje úplne náhodné číslo. Na základe požiadavky je možné vygenerovať číslo, ktoré patrí do celočíselného, ​​pohyblivého alebo dvojitého dátového typu. Môže sa jednoducho použiť v programe pomocou funkcie rand ().

Aj keď má funkcia rand generovať náhodnú hodnotu, prilepila sa, aby vygenerovala rovnakú hodnotu zakaždým, keď sa program vykoná, a môže sa to stať kvôli konštantnej počiatočnej hodnote. Ak je požiadavkou, aby sa nové náhodné číslo vygenerovalo pri každom spustení programu, potom sa musíme uistiť, že osivo by sa malo zmeniť pri každom spustení programu. Čas je niečo, čo sa neustále mení a možno ho tiež považovať za niečo, čo môže pomôcť pri získaní náhodnej počiatočnej hodnoty zakaždým a pri použití času v programe musíme použiť hlavičkový súbor time.h.

Generačné celé čísla

Funkcia rand () sa používa na generovanie náhodných čísel. Zakaždým, keď sa volá, dáva náhodné číslo. Ak vývojári pridajú nejakú logiku, môžu vygenerovať náhodné číslo v rámci definovaného rozsahu a ak rozsah nie je explicitne definovaný, vráti úplne náhodnú celočíselnú hodnotu. Funkcia rand () v C by sa mohla použiť na vygenerovanie náhodného čísla a vygenerované číslo úplne odstraňuje semeno. Semeno je hodnota, ktorú používa funkcia rand na vygenerovanie náhodnej hodnoty. Ak sa počiatočná hodnota neustále mení, vygenerované číslo bude nové pri každom kompilácii programu, inak vráti rovnakú hodnotu zakaždým, keď sa vygenerovalo pri prvom spustení programu. Na vygenerovanie nižšie je program na generovanie celého 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ýkon:

Náhodne vygenerované číslo je 1804289383.

V tomto programe sme použili hlavičkový súbor time.h, ktorý sa používa na využitie systémového času pri generovaní náhodného čísla. Keď sa čas mení zakaždým, hodnota semena sa zmení zakaždým, keď sa program vykoná, čo nám pomôže vygenerovať náhodné číslo pri každom spustení programu. Rand_num je premenná, ktorá sa používa na uloženie náhodne vygenerovaného čísla. Funkcia rand () generuje náhodné číslo, ktoré je priradené premennej rand_num. Pretože sme explicitne nedefinovali návratovú hodnotu náhodného čísla, dá nám celé číslo.

Generovanie čísel s pohyblivou rádovou čiarkou

Prístup na generovanie náhodnej hodnoty float je podobný prístupu na generovanie celého čísla. Jediným rozdielom je, že budeme musieť explicitne definovať, že hodnota, ktorú očakávame od funkcie rand, by mala byť plavák. Hodnota float zvyčajne spotrebuje viac miesta v úložisku v porovnaní s krátkym inter. Program, ktorý sme napísali vyššie pre náhodné generovanie celočíselnej hodnoty, bude rovnaký, ako tu napíšeme. Jediným rozdielom bude výslovná definícia typu údajov. Podobne ako v predchádzajúcom programe, aj tu sme použili hlavičkový súbor time.h, aby sme mu pomohli pri generovaní náhodných čísel. Ak tento súbor hlavičky nie je zahrnutý v programe, bude mať pri každom programe rovnakú hodnotu. Je popravený. Nižšie je uvedený program na generovanie náhodných hodnôt 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ýkon:

V tomto programe sme použili (float), ktorý sa používa na explicitné definovanie toho, že hodnota vrátená z funkcie rand by mala byť float v prírode. Pretože premenná ran_num je tiež definovaná s floatovým dátovým typom, pri generovaní v programovacom jazyku C bude schopná spracovať číslo float, ktoré má zvyčajne šesť číslic za desatinnou čiarkou. Pri tlačení hodnoty float sme použili% f, pretože je to niečo, o čo sa musí pri tlačení hodnoty float starať.

záver

Na zvýšenie náhodnosti čísla je možné využiť matematické výrazy. Použitím logiky je tiež možné definovať rozsah čísel, pod ktorým majú byť čísla generované náhodne. Funkcia generovania náhodnej gumy je poskytovaná všetkými programovacími jazykmi a používa sa v skutočnej aplikácii na základe požiadavky. Aby sme zaistili silnú náhodnosť čísla, musíme sa ubezpečiť, že počiatočné číslo, ktoré sa používa na generovanie náhodnej hodnoty, by malo byť veľmi náhodné a nové pri každom spustení programu.

Odporúčané články

Toto je sprievodca generátorom náhodných čísel v C. Tu diskutujeme o funkcii, celých celých číslach generovania a generovaní čísel float point v C. Môžete tiež prejsť naše ďalšie navrhované články, aby ste sa dozvedeli viac -

  1. Generátor náhodných čísel v R
  2. Čo je trieda šablón v jazyku C ++?
  3. Náhodný lesný algoritmus
  4. Rámce v Jave
  5. Čo je generátor náhodných čísel v Pythone?
  6. Generátor náhodných čísel v C ++ (príklady s krokmi)
  7. Generátor náhodných čísel v Matlabe
  8. Generátor náhodných čísel v C #
  9. Generátor náhodných čísel v JavaScripte
  10. Generátor náhodných čísel v PHP

Kategórie: