Galvenes fails:
stdlib.h
Sintakse:
int rand (anulēts)
Atgriešanās vērtības:
Šī funkcija atgriež nākamo pseido-nejaušo skaitli sērijā. Ciparu sērijas diapazona vērtība ir no 0 līdz RAND_MAX. RAND_MAX ir makro, kas definēts stdlib.h galvenes fails, kura vērtība ir maksimālā vērtība, kuru var atgriezt ar rand () funkciju. RAND_MAX vērtība ir lielāka, bet ne mazāk kā 32767 atkarībā no C bibliotēkām.
// Piemērs1.c# iekļaut
# iekļaut
int main ()
int i;
printf ("10 izlases numuri => \ n");
par (i = 0; i<10;i++)
printf ("% d", rand ());
printf ("\ n");
atgriešanās 0;
1. piemērā.c, mēs izsaucam rand () funkciju katrā cilpas atkārtojumā un izdrukājam funkcijas atgriešanās vērtību. Funkcijas rand () vērtību secība ir vienāda katru reizi, kad palaižam programmu. Pēc noklusējuma rand funkcijas funkcija ir iestatīta uz 1.
Mēs varam iestatīt sēklas randam funkcijai, izmantojot srand () funkciju. Sēklas var iestatīt tikai vienu reizi un pirms pirmās reizes rand () funkciju izsaukums.
srand () funkcija:
Galvenes fails:
stdlib.h
Sintakse:
int srand (neparakstītas int sēklas)
Argumenti:
Šai funkcijai nepieciešams 1 arguments
sēklas: Vesels skaitlis, ko izmanto kā sēklas jaunai pseido-nejaušu skaitļu sērijai.
Atgriešanās vērtības:
Nav
// Piemērs2.c# iekļaut
# iekļaut
# iekļaut
int main ()
int i;
srand (laiks (0));
printf ("10 izlases numuri => \ n");
par (i = 0; i<10;i++)
printf ("% d", rand ());
printf ("\ n");
atgriešanās 0;
2. piemērā.c, mēs esam izmantojuši funkciju srand (), lai iestatītu Rand () funkcijas ģenerētās nejaušo skaitļu secības sākotnējo sākumu. Katru reizi, kad programma tiek palaista, tiek ģenerēta atšķirīga secība. Srand (), laika (0) funkcija (deklarēta laiks.h galvenes fails) tiek izmantots kā sēkla. Šī laika (0) funkcija atgriež sekunžu skaitu, kas pagājis kopš laikmeta (00:00:00, 1970. gada 1. janvāris). Tas joprojām var radīt tādas pašas secības, ja programmu palaižat tajā pašā sekundē.
# iekļaut
# iekļaut
# iekļaut
int main ()
int i;
srand (laiks (0));
printf ("10 izlases numuri starp 1 un 10 => \ n");
par (i = 0; i<10;i++)
printf ("% d", (rand ()% 10) + 1);
printf ("\ n");
atgriešanās 0;
3. piemērā.c mēs esam redzējuši, kā nejaušus skaitļus var ģenerēt no 1 līdz 10.
# iekļaut
# iekļaut
# iekļaut
int main ()
int i, max, min;
printf ("Ievadiet minimālo vērtību =>");
scanf ("% d", & min);
printf ("Ievadiet maksimālo vērtību =>");
scanf ("% d", & max);
ja (min> max)
printf ("Min vērtība ir lielāka par maksimālo vērtību \ n");
atgriešanās 0;
srand (laiks (0));
printf ("10 izlases numuri starp% d un% d => \ n", min, max);
par (i = 0; i<10;i++)
printf ("% d", (rand ()% (max - min +1)) + min);
printf ("\ n");
atgriešanās 0;
4. piemērā.c mēs esam paņēmuši diapazonu no lietotāja un ģenerējuši nejaušu skaitli šajā diapazonā. Formula ir: rand ()% (max - min +1)) + min
# iekļaut
# iekļaut
# iekļaut
int main ()
int i;
srand (laiks (0));
printf ("10 izlases numuri starp 0.0 un 1.0 => \ n ");
par (i = 0; i<10;i++)
printf ("% f", ((float) rand () / RAND_MAX));
printf ("\ n");
atgriešanās 0;
5. piemērā.c, mēs esam redzējuši, kā mēs varam ģenerēt nejaušus skaitļus starp pludiņu 0.0 un 1.0 Formula ir: (pludiņš) rands () / RAND_MAX
# iekļaut
# iekļaut
# iekļaut
int main ()
int i;
peldēt max, min;
printf ("Ievadiet minimālo vērtību =>");
scanf ("% f", & min);
printf ("Ievadiet maksimālo vērtību =>");
scanf ("% f", & max);
ja (min> max)
printf ("Min vērtība ir lielāka par maksimālo vērtību \ n");
atgriešanās 0;
srand (laiks (0));
printf ("10 izlases numuri starp% f un% f => \ n", min, max);
par (i = 0; i<10;i++)
printf ("% f", min + ((float) rand () / (RAND_MAX / (max - min)));
printf ("\ n");
atgriešanās 0;
6. piemērā.c, mēs esam ņēmuši diapazonu no lietotāja un izveidojuši nejaušu skaitli šajā diapazonā (abos ieskaitot). Formula ir: min + ((float) rand () / (RAND_MAX / (max - min)))
Secinājums:
Šajā rakstā mēs esam iemācījušies, kā nejaušus skaitļus var ģenerēt, izmantojot rand () un srand () funkciju. Par Rand funkcijas radīto nejaušo skaitļu kvalitāti nav garantiju, taču tā ir pietiekami laba gadījuma lietošanai.