C Programmēšana

rand () Funkcija C valodā

rand () Funkcija C valodā
C valodā rand () funkcija tiek izmantota Pseido skaitļu ģenerators (PRNG). Rand () funkcijas ģenerētie nejaušie skaitļi nav īsti nejauši. Tā ir secība, kas periodiski atkārtojas, taču periods ir tik liels, ka mēs to varam ignorēt. The rand () funkcija darbojas, atceroties sēklas vērtību, kas tiek izmantota nākamā nejaušā skaitļa un nākamās jaunās sēklas aprēķināšanai. Šajā rakstā mēs detalizēti apspriedīsim, kā nejaušus skaitļus var ģenerēt, izmantojot rand () funkciju. Tātad, sāksim darbu!

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ē.

// Piemērs3.c
# 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.

// 4. piemērs.c
# 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

// Piemērs5.c
# 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

// Piemērs6.c
# 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.

Kā lietot GameConqueror Cheat Engine Linux
Rakstā ir sniegts ceļvedis par GameConqueror apkrāptu dzinēja izmantošanu Linux. Daudzi lietotāji, kas spēlē spēles operētājsistēmā Windows, bieži izm...
Labākie Linux spēļu konsoles emulatori
Šajā rakstā tiks uzskaitīta populārā Linux spēļu konsoles atdarināšanas programmatūra. Emulācija ir programmatūras saderības slānis, kas atdarina spēļ...
Labākie Linux spēļu draiveri 2021. gadā
Linux operētājsistēma ir gājusi tālu no sākotnējā, vienkāršā uz serveriem balstītā izskata. Šī operētājsistēma pēdējos gados ir ārkārtīgi uzlabojusies...