C Programování

Funkce rand () v jazyce C

Funkce rand () v jazyce C
V jazyce C je rand () funkce se používá pro Generátor pseudo čísel (PRNG). Náhodná čísla generovaná funkcí rand () nejsou skutečně náhodná. Je to posloupnost, která se periodicky opakuje, ale perioda je tak velká, že ji můžeme ignorovat. The rand () Funkce funguje tak, že si zapamatujete počáteční hodnotu, která se používá k výpočtu dalšího náhodného čísla a dalšího nového semene. V tomto článku budeme podrobně diskutovat o tom, jak lze generovat náhodná čísla pomocí rand () funkce. Pojďme tedy začít!

Soubor záhlaví:

stdlib.h

Syntax:

int rand (neplatný)

Návratové hodnoty:

Tato funkce vrací další pseudonáhodné číslo v řadě. Hodnota rozsahu číselné řady je mezi 0 a RAND_MAX. RAND_MAX je makro definované v stdlib.h hlavičkový soubor, jehož hodnota je maximální hodnota, kterou lze vrátit pomocí funkce rand (). Hodnota RAND_MAX je větší, ale ne méně než 32767, v závislosti na knihovnách C.

// Příklad 1.C
#zahrnout
#zahrnout
int main ()

int i;
printf ("10 náhodných čísel => \ n");
pro (i = 0; i<10;i++)

printf ("% d", rand ());

printf ("\ n");
návrat 0;


V příkladu 1.c, zavoláme funkci rand () v každé iteraci smyčky for a vytiskneme návratovou hodnotu funkce. Sekvence hodnot funkce rand () je stejná při každém spuštění programu. Ve výchozím nastavení je osivo funkce rand nastaveno na 1.

Můžeme nastavit osivo pro funkci rand pomocí srand () funkce. Osivo lze nastavit pouze jednou, a to poprvé rand () volání funkce.

funkce srand ():

Soubor záhlaví:

stdlib.h

Syntax:

int srand (unsigned int seed)

Argumenty:

Tato funkce má 1 argument

semínko: Celočíselná hodnota použitá jako zárodek pro novou řadu pseudonáhodných čísel.

Návratové hodnoty:

Žádný

// Příklad 2.C
#zahrnout
#zahrnout
#zahrnout
int main ()

int i;
srand (čas (0));
printf ("10 náhodných čísel => \ n");
pro (i = 0; i<10;i++)

printf ("% d", rand ());

printf ("\ n");
návrat 0;


V příkladu 2.c, použili jsme funkci srand () k nastavení počátečního semene sekvence náhodných čísel generované funkcí rand (). Při každém spuštění programu se vygeneruje jiná sekvence. Ve funkci srand (), time (0) (deklarováno v čas.h záhlaví souboru) se používá jako semeno. Tato funkce času (0) vrací počet sekund, které uplynuly od epochy (00:00:00, 1. ledna 1970). To může způsobit stejné sekvence, pokud program spustíte ve stejnou sekundu.

// Příklad 3.C
#zahrnout
#zahrnout
#zahrnout
int main ()

int i;
srand (čas (0));
printf ("10 náhodných čísel mezi 1 a 10 => \ n");
pro (i = 0; i<10;i++)

printf ("% d", (rand ()% 10) + 1);

printf ("\ n");
návrat 0;


V příkladu 3.c viděli jsme, jak lze generovat náhodná čísla mezi 1 a 10.

// Příklad4.C
#zahrnout
#zahrnout
#zahrnout
int main ()

int i, max, min;
printf ("Zadejte minimální hodnotu =>");
scanf ("% d", & min);
printf ("Zadejte maximální hodnotu =>");
scanf ("% d", & max);
pokud (min> max)

printf ("Minimální hodnota je větší než maximální hodnota \ n");
návrat 0;

srand (čas (0));
printf ("10 náhodných čísel mezi% d a% d => \ n", min, max);
pro (i = 0; i<10;i++)

printf ("% d", (rand ()% (max - min +1)) + min);

printf ("\ n");
návrat 0;


V příkladu 4.c vzali jsme rozsah od uživatele a vygenerovali náhodné číslo v tomto rozsahu. Vzorec je: rand ()% (max - min +1)) + min

// Příklad 5.C
#zahrnout
#zahrnout
#zahrnout
int main ()

int i;
srand (čas (0));
printf ("10 náhodných čísel mezi 0.0 a 1.0 => \ n ");
pro (i = 0; i<10;i++)

printf ("% f", ((float) rand () / RAND_MAX));

printf ("\ n");
návrat 0;


V příkladu 5.c, viděli jsme, jak můžeme generovat náhodná čísla mezi floatem 0.0 a 1.0 Vzorec je: (float) rand () / RAND_MAX)

// Příklad 6.C
#zahrnout
#zahrnout
#zahrnout
int main ()

int i;
float max, min;
printf ("Zadejte minimální hodnotu =>");
scanf ("% f", & min);
printf ("Zadejte maximální hodnotu =>");
scanf ("% f", & max);
pokud (min> max)

printf ("Minimální hodnota je větší než maximální hodnota \ n");
návrat 0;

srand (čas (0));
printf ("10 náhodných čísel mezi% f a% f => \ n", min, max);
pro (i = 0; i<10;i++)

printf ("% f", min + ((float) rand () / (RAND_MAX / (max - min))));

printf ("\ n");
návrat 0;


V příkladu 6.c, vzali jsme rozsah od uživatele a vygenerovali náhodné číslo v tomto rozsahu (včetně). Vzorec je: min + ((float) rand () / (RAND_MAX / (max - min)))

Závěr:

V tomto článku jsme se naučili, jak lze generovat náhodná čísla pomocí rand () a srand () funkce. Neexistují žádné záruky ohledně kvality náhodných čísel generovaných funkcí rand, ale pro běžné použití je to dost dobré.

Hry Nejlepší hry pro ruční sledování
Nejlepší hry pro ruční sledování
Oculus Quest nedávno představil skvělou myšlenku ručního sledování bez ovladačů. S neustále se zvyšujícím počtem her a aktivit, které provádějí podpor...
Hry Jak zobrazit překrytí OSD v linuxových aplikacích a hrách na celou obrazovku
Jak zobrazit překrytí OSD v linuxových aplikacích a hrách na celou obrazovku
Hraní her na celou obrazovku nebo používání aplikací v režimu celé obrazovky bez rozptýlení vás mohou odříznout od příslušných systémových informací v...
Hry Top 5 karet pro zachycení hry
Top 5 karet pro zachycení hry
Všichni jsme viděli a milovali streamování her na YouTube. PewDiePie, Jakesepticye a Markiplier jsou jen někteří z nejlepších hráčů, kteří vydělali mi...