C Programiranje

rand () Funkcija v jeziku C

rand () Funkcija v jeziku C
V jeziku C je rand () funkcija se uporablja za Generator psevdo števil (PRNG). Naključne številke, ustvarjene s funkcijo rand (), niso resnično naključne. Gre za zaporedje, ki se občasno ponavlja, vendar je obdobje tako veliko, da ga lahko prezremo. The rand () funkcija deluje tako, da si zapomni začetno vrednost, ki se uporablja za izračun naslednjega naključnega števila in naslednjega novega semena. V tem članku bomo podrobno razpravljali o tem, kako lahko naključne številke ustvarimo z uporabo rand () funkcijo. Torej, začnimo!

Datoteka glave:

stdlib.h

Sintaksa:

int rand (void)

Vrnjene vrednosti:

Ta funkcija vrne naslednje psevdonaključno število v nizu. Vrednost obsega številčne serije je med 0 in RAND_MAX. RAND_MAX je makro, definiran v stdlib.h datoteka glave, katere vrednost je največja vrednost, ki jo lahko vrne funkcija rand (). Vrednost RAND_MAX je večja, vendar ne manjša od 32767, odvisno od knjižnic C.

// Primer1.c
#include
#include
int main ()

int i;
printf ("10 naključnih števil = = \ n");
za (i = 0; i<10;i++)

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

printf ("\ n");
vrnitev 0;


V primeru1.c, v vsaki ponovitvi zanke for pokličemo funkcijo rand () in izpišemo vrnjeno vrednost funkcije. Zaporedje vrednosti funkcije rand () je vsakokrat, ko zaženemo program, enako. Privzeto je seme funkcije rand nastavljeno na 1.

S funkcijo rand lahko nastavimo seme za funkcijo rand srand () funkcijo. Seme lahko nastavite samo enkrat in pred prvim rand () klic funkcije.

srand () funkcija:

Datoteka glave:

stdlib.h

Sintaksa:

int srand (nepodpisano int seme)

Argumenti:

Ta funkcija ima 1 argument

seme: Celoštevilčna vrednost, ki se uporablja kot seme za novo serijo psevdonaključnih števil.

Vrnjene vrednosti:

Nobenega

// Primer2.c
#include
#include
#include
int main ()

int i;
srand (čas (0));
printf ("10 naključnih števil = = \ n");
za (i = 0; i<10;i++)

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

printf ("\ n");
vrnitev 0;


V primeru2.c, s funkcijo srand () smo nastavili začetno seme zaporedja naključnih števil, ki ga generira funkcija rand (). Vsakič, ko se program zažene, se ustvari drugačno zaporedje. V srand (), funkcija time (0) (deklarirana v čas.h header file) se uporablja kot seme. Funkcija this time (0) vrne število sekund, ki je preteklo od epohe (00:00:00, 1. januar 1970). To lahko še vedno povzroči enaka zaporedja, če zaženete program v isti sekundi.

// Primer3.c
#include
#include
#include
int main ()

int i;
srand (čas (0));
printf ("10 naključnih števil med 1 in 10 => \ n");
za (i = 0; i<10;i++)

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

printf ("\ n");
vrnitev 0;


V primeru3.c videli smo, kako lahko naključne številke generiramo med 1 in 10.

// Primer4.c
#include
#include
#include
int main ()

int i, max, min;
printf ("Enter Min value =>");
scanf ("% d", & min);
printf ("Enter Max value =>");
scanf ("% d", & max);
če (min> max)

printf ("Najmanjša vrednost je večja od največje vrednosti \ n");
vrnitev 0;

srand (čas (0));
printf ("10 naključnih števil med% d in% d => \ n", min, max);
za (i = 0; i<10;i++)

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

printf ("\ n");
vrnitev 0;


V primeru4.c od uporabnika smo vzeli obseg in znotraj tega obsega ustvarili naključno število. Formula je: rand ()% (max - min +1)) + min

// Primer5.c
#include
#include
#include
int main ()

int i;
srand (čas (0));
printf ("10 naključnih števil med 0.0 in 1.0 => \ n ");
za (i = 0; i<10;i++)

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

printf ("\ n");
vrnitev 0;


V primeru5.c, videli smo, kako lahko med floatom 0 ustvarimo naključna števila.0 in 1.0 Formula je: (float) rand () / RAND_MAX)

// Primer6.c
#include
#include
#include
int main ()

int i;
plovec max, min;
printf ("Enter Min value =>");
scanf ("% f", & min);
printf ("Enter Max value =>");
scanf ("% f", & max);
če (min> max)

printf ("Najmanjša vrednost je večja od največje vrednosti \ n");
vrnitev 0;

srand (čas (0));
printf ("10 naključnih števil med% f in% f => \ n", min, max);
za (i = 0; i<10;i++)

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

printf ("\ n");
vrnitev 0;


V primeru6.c, od uporabnika smo vzeli obseg in znotraj tega obsega ustvarili naključno število (vključno z obema). Formula je: min + ((float) rand () / (RAND_MAX / (max - min)))

Zaključek:

V tem članku smo izvedeli, kako lahko naključne številke generiramo s pomočjo rand () in srand () funkcijo. Za kakovost naključnih številk, ustvarjenih s funkcijo rand, ni nobenih jamstev, je pa dovolj dobra za priložnostno uporabo.

Vulkan za uporabnike Linuxa
Z vsako novo generacijo grafičnih kart vidimo, da razvijalci iger premikajo meje grafične zvestobe in se približujejo fotorealizmu. A kljub vsem kredi...
OpenTTD vs Simutrans
Ustvarjanje lastne simulacije prevoza je lahko zabavno, sproščujoče in izjemno vabljivo. Zato morate preizkusiti čim več iger, da boste našli tisto, k...
Vadnica za OpenTTD
OpenTTD je ena izmed najbolj priljubljenih poslovnih simulacijskih iger. V tej igri morate ustvariti čudovit prevozniški posel. Vendar boste začeli na...