Header File:
stdlib.h
Syntax:
int rand (walang bisa)
Mga halagang ibabalik:
Ibinabalik ng pagpapaandar na ito ang susunod na pseudo-random na numero sa serye. Ang saklaw na halaga ng serye ng numero ay nasa pagitan ng 0 at RAND_MAX. Ang RAND_MAX ay isang macro na tinukoy sa stdlib.h header file, na ang halaga ay ang maximum na halaga, na maaaring bumalik sa pamamagitan ng pag-andar ng rand (). Ang halaga ng RAND_MAX ay mas malaki ngunit hindi kukulangin sa 32767 depende sa mga aklatan ng C.
//Example1.c
# isama
# isama
intpangunahing()
{
intako;
printf ('10 Mga Random na Numero => n');
para sa(ako=0;ako<10;ako++)
{
printf ('% d', hilera ());
}
printf (' n');
bumalik ka 0;
}
Sa Halimbawa1.c, tinawag namin ang pag-andar ng rand () sa bawat pag-ulit para sa loop at i-print ang return halaga ng pagpapaandar. Ang pagkakasunud-sunod ng halaga ng pagpapaandar ng rand () ay pareho sa bawat pagpapatakbo namin ng programa. Bilang default, ang binhi ng pagpapaandar ng rand ay nakatakda sa 1.
Maaari nating itakda ang binhi para sa pag-andar ng rand gamit ang srand () pagpapaandar Ang binhi ay maaaring itakda nang isang beses lamang, at bago ang unang pagkakataon hilera () tawag sa pagpapaandar.
pagpapaandar ng srand ():
Header File:
stdlib.h
Syntax:
int srand (unsigned int seed)
Mga Pangangatwiran:
Ang pagpapaandar na ito ay tumatagal ng 1 argument
binhi: Isang halaga ng integer na ginamit bilang isang binhi para sa isang bagong serye ng mga pseudo-random na numero.
Mga halagang ibabalik:
Wala
//Example2.c# isama
# isama
# isama
intpangunahing()
{
intako;
srand ( oras (0));
printf ('10 Mga Random na Numero => n');
para sa(ako=0;ako<10;ako++)
{
printf ('% d', hilera ());
}
printf (' n');
bumalik ka 0;
}
Sa Halimbawa2.c, ginamit namin ang pagpapaandar ng srand () upang itakda ang paunang binhi ng pagkakasunod-sunod ng random na numero na nabuo ng pag-andar ng rand (). Sa tuwing tatakbo ang programa, magkakaroon ng iba't ibang pagkakasunud-sunod. Sa srand (), oras (0) na pag-andar (idineklara sa oras.h header file) ay ginagamit bilang isang binhi. Ang pagpapaandar sa oras na ito (0) ay nagbabalik ng bilang ng mga segundo na lumipas mula noong panahon (00:00:00, Enero 1, 1970). Maaari pa rin itong makabuo ng parehong mga pagkakasunud-sunod kung patakbuhin mo ang programa sa parehong segundo.
# isama
# isama
# isama
intpangunahing()
{
intako;
srand ( oras (0));
printf ('10 Mga Random na Numero sa pagitan ng 1 at 10 => n');
para sa(ako=0;ako<10;ako++)
{
printf ('% d',( hilera () %10) + 1);
}
printf (' n');
bumalik ka 0;
}
Sa Halimbawa3.c nakita namin kung paano maaaring mabuo ang mga random na numero sa pagitan ng 1 at 10.
# isama
# isama
# isama
intpangunahing()
{
intako,max,min;
printf ('Ipasok ang Min halaga =>');
scanf ('% d', &min);
printf ('Ipasok ang Max na halaga =>');
scanf ('% d', &max);
kung(min>max)
{
printf ('Min na halaga ay mas malaki kaysa sa max na halaga n');
bumalik ka 0;
}
srand ( oras (0));
printf ('10 Mga Random na Numero sa pagitan ng% d at% d => n',min,max);
para sa(ako=0;ako<10;ako++)
{
printf ('% d',( hilera () % (max-min+1)) +min);
}
printf (' n');
bumalik ka 0;
}
Sa Halimbawa4.c kinuha namin ang saklaw mula sa gumagamit at nakabuo ng isang random na numero sa loob ng saklaw na ito. Ang pormula ay: rand ()% (max - min +1)) + min
# isama
# isama
# isama
intpangunahing()
{
intako;
srand ( oras (0));
printf ('10 Mga Random na Numero sa pagitan ng 0.0 at 1.0 => n');
para sa(ako=0;ako<10;ako++)
{
printf ('% f',((lumutang) hilera () /RAND_MAX));
}
printf (' n');
bumalik ka 0;
}
Sa Halimbawa5.c, nakita namin kung paano makakabuo ng mga random na numero sa pagitan ng float 0.0 at 1.0 Ang pormula ay: (float) rand () / RAND_MAX)
# isama
# isama
# isama
intpangunahing()
{
intako;
lumutangmax,min;
printf ('Ipasok ang Min halaga =>');
scanf ('% f', &min);
printf ('Ipasok ang Max na halaga =>');
scanf ('% f', &max);
kung(min>max)
{
printf ('Min na halaga ay mas malaki kaysa sa max na halaga n');
bumalik ka 0;
}
srand ( oras (0));
printf ('10 Mga Random na Numero sa pagitan ng% f at% f => n',min,max);
para sa(ako=0;ako<10;ako++)
{
printf ('% f',min+ ((lumutang) hilera () /(RAND_MAX/(max-min))));
}
printf (' n');
bumalik ka 0;
}
Sa Halimbawa6.c, kinuha namin ang saklaw mula sa gumagamit at nakabuo ng isang random na numero sa loob ng saklaw na ito (parehong kasama). Ang pormula ay: min + ((float) rand () / (RAND_MAX / (max - min)))
Konklusyon:
Sa artikulong ito, natutunan namin kung paano maaaring mabuo ang mga random na numero gamit ang hilera () at srand () pagpapaandar Walang mga garantiya tungkol sa kalidad ng mga random na numero na nabuo ng rand function, ngunit ito ay sapat na mahusay para sa kaswal na paggamit.