Overskriftsfil:
stdlib.h
Syntaks:
int rand (ugyldig)
Returverdier:
Denne funksjonen returnerer det neste pseudo-tilfeldige tallet i serien. Områdeverdien for nummerserien er mellom 0 og RAND_MAX. RAND_MAX er en makro definert i stdlib.h header-fil, hvis verdi er den maksimale verdien, som kan returneres per rand () -funksjon. Verdien av RAND_MAX er større, men ikke mindre enn 32767, avhengig av C-bibliotekene.
// Eksempel1.c#inkludere
#inkludere
int main ()
int i;
printf ("10 tilfeldige tall => \ n");
for (i = 0; i<10;i++)
printf ("% d", rand ());
printf ("\ n");
retur 0;
I eksempel 1.c, vi kaller rand () -funksjonen i hver iterasjon av for loop og skriver ut returverdien til funksjonen. Verdisekvensen til rand () -funksjonen er den samme hver gang vi kjører programmet. Som standard er frøet til randfunksjonen satt til 1.
Vi kan stille inn frøet for randfunksjonen ved hjelp av srand () funksjon. Frøet kan settes bare én gang, og før første gang rand () funksjonsanrop.
srand () -funksjon:
Overskriftsfil:
stdlib.h
Syntaks:
int srand (usignert int seed)
Argumenter:
Denne funksjonen tar 1 argument
frø: Et heltall som brukes som et frø for en ny serie med pseudo-tilfeldige tall.
Returverdier:
Ingen
// Eksempel2.c#inkludere
#inkludere
#inkludere
int main ()
int i;
srand (tid (0));
printf ("10 tilfeldige tall => \ n");
for (i = 0; i<10;i++)
printf ("% d", rand ());
printf ("\ n");
retur 0;
I eksempel 2.c, vi har brukt srand () -funksjonen til å angi det første frøet til tilfeldige tallsekvensen generert av rand () -funksjonen. Hver gang programmet kjøres, genereres en annen sekvens. I srand (), time (0) -funksjon (erklært i tid.h header file) brukes som et frø. Denne gangen (0) -funksjonen returnerer antall sekunder som har gått siden epoken (00:00:00, 1. januar 1970). Dette kan fremdeles gi de samme sekvensene hvis du kjører programmet i samme sekund.
#inkludere
#inkludere
#inkludere
int main ()
int i;
srand (tid (0));
printf ("10 tilfeldige tall mellom 1 og 10 => \ n");
for (i = 0; i<10;i++)
printf ("% d", (rand ()% 10) + 1);
printf ("\ n");
retur 0;
I eksempel 3.c vi har sett hvordan tilfeldige tall kan genereres mellom 1 og 10.
#inkludere
#inkludere
#inkludere
int main ()
int i, maks, min;
printf ("Enter Min value =>");
scanf ("% d", & min);
printf ("Enter Max value =>");
scanf ("% d", & max);
hvis (min> maks)
printf ("Min verdi er større enn maks verdi \ n");
retur 0;
srand (tid (0));
printf ("10 tilfeldige tall mellom% d og% d => \ n", min, maks);
for (i = 0; i<10;i++)
printf ("% d", (rand ()% (maks - min +1)) + min);
printf ("\ n");
retur 0;
I eksempel 4.c vi har tatt rekkevidden fra brukeren og generert et tilfeldig tall innenfor dette området. Formelen er: rand ()% (maks - min +1)) + min
#inkludere
#inkludere
#inkludere
int main ()
int i;
srand (tid (0));
printf ("10 tilfeldige tall mellom 0.0 og 1.0 => \ n ");
for (i = 0; i<10;i++)
printf ("% f", ((float) rand () / RAND_MAX));
printf ("\ n");
retur 0;
I eksempel 5.c, vi har sett hvordan vi kan generere tilfeldige tall mellom float 0.0 og 1.0 Formelen er: (float) rand () / RAND_MAX)
#inkludere
#inkludere
#inkludere
int main ()
int i;
flyte max, min;
printf ("Enter Min value =>");
scanf ("% f", & min);
printf ("Enter Max value =>");
scanf ("% f", & max);
hvis (min> maks)
printf ("Min verdi er større enn maks verdi \ n");
retur 0;
srand (tid (0));
printf ("10 tilfeldige tall mellom% f og% f => \ n", min, maks);
for (i = 0; i<10;i++)
printf ("% f", min + ((float) rand () / (RAND_MAX / (max - min))));
printf ("\ n");
retur 0;
I eksempel 6.c, vi har tatt rekkevidden fra brukeren og generert et tilfeldig tall innenfor dette området (begge inkludert). Formelen er: min + ((flyt) rand () / (RAND_MAX / (maks - min)))
Konklusjon:
I denne artikkelen har vi lært hvordan tilfeldige tall kan genereres ved hjelp av rand () og srand () funksjon. Det er ingen garantier for kvaliteten på tilfeldige tall generert av randfunksjonen, men det er bra nok til uformell bruk.