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