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.
#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.
#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
#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)
#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.