C Programmering

rand () Funktion i C-sprog

rand () Funktion i C-sprog
På C-sproget er rand () funktion bruges til Pseudotalgenerator (PRNG). De tilfældige tal genereret af funktionen rand () er ikke rigtig tilfældige. Det er en sekvens, der gentages med jævne mellemrum, men perioden er så stor, at vi kan ignorere den. Det rand () funktionen fungerer ved at huske en frøværdi, der bruges til at beregne det næste tilfældige tal og det næste nye frø. I denne artikel vil vi diskutere detaljeret, hvordan tilfældige tal kan genereres ved hjælp af rand () fungere. Så lad os komme i gang!

Overskriftsfil:

stdlib.h

Syntaks:

int rand (ugyldigt)

Returværdier:

Denne funktion returnerer det næste pseudo-tilfældige tal i serien. Rækkevidden for nummerserien er mellem 0 og RAND_MAX. RAND_MAX er en makro defineret i stdlib.h header-fil, hvis værdi er den maksimale værdi, som kan returneres med rand () -funktionen. Værdien af ​​RAND_MAX er større, men ikke mindre end 32767 afhængigt af C-bibliotekerne.

// Eksempel1.c
#omfatte
#omfatte
int main ()

int i;
printf ("10 tilfældige tal => \ n");
for (i = 0; i<10;i++)

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

printf ("\ n");
returnere 0;


I eksempel 1.c, vi kalder rand () -funktionen i hver iteration af for loop og udskriver funktionens returværdi. Værdisekvensen for funktionen rand () er den samme, hver gang vi kører programmet. Som standard er frøet til randfunktionen indstillet til 1.

Vi kan indstille frøet til randfunktionen ved hjælp af srand () fungere. Frøet kan kun indstilles én gang og inden første gang rand () funktionskald.

srand () funktion:

Overskriftsfil:

stdlib.h

Syntaks:

int srand (usigneret int frø)

Argumenter:

Denne funktion tager 1 argument

frø: Et heltal, der bruges som frø til en ny serie af pseudotilfældige tal.

Returværdier:

Ingen

// Eksempel2.c
#omfatte
#omfatte
#omfatte
int main ()

int i;
srand (tid (0));
printf ("10 tilfældige tal => \ n");
for (i = 0; i<10;i++)

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

printf ("\ n");
returnere 0;


I eksempel 2.c, vi har brugt srand () -funktionen til at indstille det oprindelige frø af den tilfældige talrækkefølge genereret af rand () -funktionen. Hver gang programmet køres, genereres en anden rækkefølge. I srand (), time (0) funktion (erklæret i tid.h header-fil) bruges som et frø. Denne gang (0) -funktion returnerer antallet af forløbne sekunder siden epoken (00:00:00, 1. januar 1970). Dette kan stadig producere de samme sekvenser, hvis du kører programmet i samme sekund.

// Eksempel3.c
#omfatte
#omfatte
#omfatte
int main ()

int i;
srand (tid (0));
printf ("10 tilfældige tal mellem 1 og 10 => \ n");
for (i = 0; i<10;i++)

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

printf ("\ n");
returnere 0;


I eksempel 3.c vi har set, hvordan tilfældige tal kan genereres mellem 1 og 10.

// Eksempel 4.c
#omfatte
#omfatte
#omfatte
int main ()

int i, max, min;
printf ("Indtast min værdi =>");
scanf ("% d", & min);
printf ("Indtast maks. værdi =>");
scanf ("% d", & max);
hvis (min> maks.)

printf ("Min værdi er større end max værdi \ n");
returnere 0;

srand (tid (0));
printf ("10 tilfældige tal mellem% d og% d => \ n", min, max);
for (i = 0; i<10;i++)

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

printf ("\ n");
returnere 0;


I eksempel 4.c vi har taget rækkevidden fra brugeren og genereret et tilfældigt tal inden for dette interval. Formlen er: rand ()% (max - min +1)) + min

// Eksempel 5.c
#omfatte
#omfatte
#omfatte
int main ()

int i;
srand (tid (0));
printf ("10 tilfældige tal mellem 0.0 og 1.0 => \ n ");
for (i = 0; i<10;i++)

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

printf ("\ n");
returnere 0;


I eksempel 5.c, vi har set, hvordan vi kan generere tilfældige tal mellem float 0.0 og 1.0 Formlen er: (float) rand () / RAND_MAX)

// Eksempel 6.c
#omfatte
#omfatte
#omfatte
int main ()

int i;
flyde max, min;
printf ("Indtast min værdi =>");
scanf ("% f", & min);
printf ("Indtast maks. værdi =>");
scanf ("% f", & max);
hvis (min> maks.)

printf ("Min værdi er større end max værdi \ n");
returnere 0;

srand (tid (0));
printf ("10 tilfældige tal mellem% f og% f => \ n", min, max);
for (i = 0; i<10;i++)

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

printf ("\ n");
returnere 0;


I eksempel 6.c, vi har taget rækkevidden fra brugeren og genereret et tilfældigt tal inden for dette interval (begge inklusive). Formlen er: min + ((float) rand () / (RAND_MAX / (max - min)))

Konklusion:

I denne artikel har vi lært, hvordan tilfældige tal kan genereres ved hjælp af rand () og srand () fungere. Der er ingen garantier for kvaliteten af ​​de tilfældige tal, der genereres af randfunktionen, men det er godt nok til afslappet brug.

Sådan downloades og afspilles Sid Meiers Civilization VI på Linux
Introduktion til spillet Civilization 6 er et moderne udtryk for det klassiske koncept, der blev introduceret i serien af ​​Age of Empires-spil. Ideen...
Sådan installeres og afspilles Doom på Linux
Introduktion til undergang Doom-serien opstod i 90'erne efter frigivelsen af ​​den originale Doom. Det var et øjeblikkeligt hit, og fra den tid af har...
Vulkan til Linux-brugere
Med hver nye generation af grafikkort ser vi spiludviklere skubbe grænserne for grafisk troskab og komme et skridt tættere på fotorealisme. Men på tro...