rand () Funkcija C valodā

Rand Function C Language



C valodā, rinda () funkcija tiek izmantota Pseido skaitļu ģenerators (PRNG) . Funkcijas rand () ģenerētie nejaušie skaitļi nav patiesi nejauši. Tā ir secība, kas periodiski atkārtojas, bet periods ir tik liels, ka mēs to varam ignorēt. The rinda () funkcija darbojas, atceroties sēklu 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 rinda () funkciju. Tātad, sāksim!

Galvenes fails:

stdlib.h







Sintakse:

int rand (anulēts)



Atgriezt vērtības:

Šī funkcija atgriež nākamo sērijas pseido-nejaušo skaitli. 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, ko var atgriezt, izmantojot funkciju rand (). RAND_MAX vērtība ir lielāka, bet ne mazāka par 32767 atkarībā no C bibliotēkām.



//Piemērs1.c

#iekļaut
#iekļaut

intgalvenais()
{

inti;

printf ('10 Nejauši skaitļi => n');

priekš(i=0;i<10;i++)
{
printf ('%d', rinda ());
}

printf (' n');
atgriezties 0;
}


1.c piemērā mēs izsaucam funkciju rand () katrā cilpas iterācijā un izdrukājam funkcijas atgriešanas vērtību. Funkcijas rand () vērtību secība ir vienāda katru reizi, kad palaižam programmu. Pēc noklusējuma funkcijas rand sēkla ir iestatīta uz 1.





Mēs varam iestatīt sēklu rand funkcijai, izmantojot srand () funkciju. Sēklas var ievietot tikai vienu reizi un pirms pirmās reizes rinda () funkcijas zvans.

srand () funkcija:

Galvenes fails:

stdlib.h



Sintakse:

int srand (neparakstīta int sēkla)

Argumenti:

Šī funkcija aizņem 1 argumentu

sēkla: Vesela skaitļa vērtība, ko izmanto kā sēklu jaunai pseido-nejaušu skaitļu sērijai.

Atgriezt vērtības:

Nav

//Piemērs2.c

#iekļaut
#iekļaut
#iekļaut

intgalvenais()
{

inti;

srand ( laiks (0));

printf ('10 Nejauši skaitļi => n');

priekš(i=0;i<10;i++)
{
printf ('%d', rinda ());
}

printf (' n');
atgriezties 0;
}


Piemērā2.c mēs esam izmantojuši funkciju srand (), lai iestatītu random () funkcijas ģenerētās nejaušo skaitļu secības sākotnējo sēklu. Katru reizi, kad programma tiek palaista, tiek ģenerēta cita secība. Srand (), laika (0) funkcija (deklarēta laiks.h galvenes fails) tiek izmantots kā sēkla. Šī laika (0) funkcija atgriež pēc laikmeta (00:00:00, 1970. gada 1. janvāris) pagājušo sekunžu skaitu. 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

intgalvenais()
{

inti;

srand ( laiks (0));

printf ('10 Nejauši skaitļi no 1 līdz 10 => n');

priekš(i=0;i<10;i++)
{
printf ('%d',( rinda () %10) + 1);
}

printf (' n');
atgriezties 0;
}


Piemērā 3.c mēs esam redzējuši, kā var radīt nejaušus skaitļus no 1 līdz 10.

//Piemērs4.c

#iekļaut
#iekļaut
#iekļaut

intgalvenais()
{

inti,maks,min;

printf ('Ievadiet minimālo vērtību =>');
scanf ('%d', &min);
printf ('Ievadiet maksimālo vērtību =>');
scanf ('%d', &maks);

ja(min>maks)
{
printf ('Minimālā vērtība ir lielāka par maksimālo vērtību n');
atgriezties 0;
}

srand ( laiks (0));


printf ('10 Nejauši skaitļi starp %d un %d => n',min,maks);

priekš(i=0;i<10;i++)
{
printf ('%d',( rinda () % (maks-min+1)) +min);
}

printf (' n');
atgriezties 0;
}


Piemērā4.c mēs esam paņēmuši diapazonu no lietotāja un izveidojuši nejaušu skaitli šajā diapazonā. Formula ir šāda: rand ()% (maks. - min +1)) + min

//Piemērs5.c

#iekļaut
#iekļaut
#iekļaut

intgalvenais()
{

inti;

srand ( laiks (0));

printf ('10 Nejauši skaitļi no 0,0 līdz 1,0 => n');

priekš(i=0;i<10;i++)
{
printf ('%f',((peldēt) rinda () /RAND_MAX));
}

printf (' n');
atgriezties 0;
}


5.c piemērā mēs esam redzējuši, kā mēs varam radīt nejaušus skaitļus starp pludiņu 0.0 un 1.0. Formula ir šāda: (pludiņš) rand () /RAND_MAX)

//Piemērs6.c

#iekļaut
#iekļaut
#iekļaut

intgalvenais()
{

inti;
peldētmaks,min;

printf ('Ievadiet minimālo vērtību =>');
scanf ('%f', &min);
printf ('Ievadiet maksimālo vērtību =>');
scanf ('%f', &maks);

ja(min>maks)
{
printf ('Minimālā vērtība ir lielāka par maksimālo vērtību n');
atgriezties 0;
}

srand ( laiks (0));

printf ('10 Nejauši skaitļi starp %f un %f => n',min,maks);

priekš(i=0;i<10;i++)
{
printf ('%f',min+ ((peldēt) rinda () /(RAND_MAX/(maks-min))));
}

printf (' n');
atgriezties 0;
}


Piemērā6.c mēs esam paņēmuši diapazonu no lietotāja un radījuši nejaušu skaitli šajā diapazonā (abi ieskaitot). Formula ir šāda: min + ((pludiņš) rand () /(RAND_MAX /(maks. - min)))

Secinājums:

Šajā rakstā mēs esam iemācījušies, kā nejaušus skaitļus var ģenerēt, izmantojot rinda () un srand () funkciju. Nav garantijas par rand funkcijas ģenerēto nejaušo skaitļu kvalitāti, taču tas ir pietiekami labs ikdienas lietošanai.