Hlavičkový súbor:
stdlib.h
Syntax:
int rand (neplatný)
Návratové hodnoty:
Táto funkcia vráti ďalšie pseudonáhodné číslo v rade. Hodnota rozsahu číselných radov je medzi 0 a RAND_MAX. RAND_MAX je makro definované v stdlib.h hlavičkový súbor, ktorého hodnota je maximálna hodnota, ktorá sa môže vrátiť pomocou funkcie rand (). Hodnota RAND_MAX je vyššia, ale nie nižšia ako 32767, v závislosti od knižníc C.
// Príklad1.c#include
#include
int main ()
int i;
printf ("10 náhodných čísel => \ n");
pre (i = 0; i<10;i++)
printf ("% d", rand ());
printf ("\ n");
návrat 0;
V príklade 1.c, zavoláme funkciu rand () v každej iterácii cyklu for a vytlačíme návratovú hodnotu funkcie. Poradie hodnôt funkcie rand () je rovnaké pri každom spustení programu. Predvolene je počiatočná funkcia funkcie rand nastavená na 1.
Semeno pre funkciu rand môžeme nastaviť pomocou srand () funkcia. Osivo je možné nastaviť iba raz a pred prvým použitím rand () volanie funkcie.
funkcia srand ():
Hlavičkový súbor:
stdlib.h
Syntax:
int srand (nepodpísané int seed)
Argumenty:
Táto funkcia má 1 argument
semienko: Celá hodnota použitá ako zárodok pre novú sériu pseudonáhodných čísel.
Návratové hodnoty:
Žiadne
// Príklad2.c#include
#include
#include
int main ()
int i;
srand (čas (0));
printf ("10 náhodných čísel => \ n");
pre (i = 0; i<10;i++)
printf ("% d", rand ());
printf ("\ n");
návrat 0;
V príklade 2.c, použili sme funkciu srand () na nastavenie počiatočného semena sekvencie náhodných čísel vygenerovanej funkciou rand (). Pri každom spustení programu sa vygeneruje iná postupnosť. Vo funkcii srand (), time (0) (deklarovaná v čas.h hlavičkový súbor) sa používa ako zárodok. Táto funkcia času (0) vracia počet sekúnd, ktoré uplynuli od epochy (00:00:00, 1. januára 1970). Toto môže stále produkovať rovnaké sekvencie, ak program spustíte v rovnakom čase.
#include
#include
#include
int main ()
int i;
srand (čas (0));
printf ("10 náhodných čísel medzi 1 a 10 => \ n");
pre (i = 0; i<10;i++)
printf ("% d", (rand ()% 10) + 1);
printf ("\ n");
návrat 0;
V príklade 3.c videli sme, ako možno generovať náhodné čísla medzi 1 a 10.
#include
#include
#include
int main ()
int i, max, min;
printf ("Zadajte minimálnu hodnotu =>");
scanf ("% d", & min);
printf ("Zadajte maximálnu hodnotu =>");
scanf ("% d", & max);
ak (min> max)
printf ("Minimálna hodnota je väčšia ako maximálna hodnota \ n");
návrat 0;
srand (čas (0));
printf ("10 náhodných čísel medzi% d a% d => \ n", min, max);
pre (i = 0; i<10;i++)
printf ("% d", (rand ()% (max - min +1)) + min);
printf ("\ n");
návrat 0;
V príklade 4.c vzali sme rozsah od používateľa a vygenerovali náhodné číslo v tomto rozmedzí. Vzorec je: rand ()% (max - min +1)) + min
#include
#include
#include
int main ()
int i;
srand (čas (0));
printf ("10 náhodných čísel medzi 0.0 a 1.0 => \ n ");
pre (i = 0; i<10;i++)
printf ("% f", ((float) rand () / RAND_MAX));
printf ("\ n");
návrat 0;
V príklade 5.c, videli sme, ako môžeme generovať náhodné čísla medzi floatom 0.0 a 1.0 Vzorec je: (float) rand () / RAND_MAX)
#include
#include
#include
int main ()
int i;
float max, min;
printf ("Zadajte minimálnu hodnotu =>");
scanf ("% f", & min);
printf ("Zadajte maximálnu hodnotu =>");
scanf ("% f", & max);
ak (min> max)
printf ("Minimálna hodnota je väčšia ako maximálna hodnota \ n");
návrat 0;
srand (čas (0));
printf ("10 náhodných čísel medzi% f a% f => \ n", min, max);
pre (i = 0; i<10;i++)
printf ("% f", min + ((float) rand () / (RAND_MAX / (max - min))));
printf ("\ n");
návrat 0;
V príklade 6.c, vzali sme rozsah od používateľa a vygenerovali náhodné číslo v tomto rozsahu (obe vrátane). Vzorec je: min + ((float) rand () / (RAND_MAX / (max - min)))
Záver:
V tomto článku sme sa dozvedeli, ako je možné generovať náhodné čísla pomocou funkcie rand () a srand () funkcia. Neexistujú žiadne záruky kvality náhodných čísel generovaných funkciou rand, na bežné použitie je to však dosť dobré.