- 1 1. Paano Gumawa ng Random na Mga Bilang sa C: Ang `rand()` Function
- 2 2. Pagsasaayos ng Saklaw ng mga Random na Numero
- 3 3. Pagbabago ng Mga Pattern ng Random Number gamit ang `srand()`
- 4 4. Mga Praktikal na Aplikasyon ng Random Numbers
- 5 5. Mahahalagang Paalala para sa `rand()` at `srand()`
- 6 Konklusyon
1. Paano Gumawa ng Random na Mga Bilang sa C: Ang `rand()` Function
1.1 Ano ang `rand()` Function?
Ang rand()
function sa C ay ginagamit upang gumawa ng pseudo-random na mga bilang. Ang pseudo-random na mga bilang ay mga sequence na ginawa ng isang naunang natukoy na algorithm, at bagamat hindi tunay na random, sapat sila para sa karamihan ng pangkalahatang layunin. rand()
ay nagbabalik ng isang integer sa saklaw mula 0 hanggang 32767. Ang saklaw na ito ay maaaring mag-iba ayon sa system, ngunit ito ang karaniwang halaga.
1.2 Pangunahing Paggamit ng `rand()` Function
Upang magamit ang rand()
function, kailangan mong isama ang stdlib.h
. Ang sumusunod na code ay isang pangunahing halimbawa ng pag-generate ng random number gamit ang rand()
.
#include
#include
int main(void) {
int randomNumber = rand();
printf("Na-generate na random na bilang: %dn", randomNumber);
return 0;
}
Pag-run ng code na ito ay magpapakita ng random number sa pagitan ng 0 at 32767. Gayunpaman, isang drawback ay na ang parehong random number ay magiging generated tuwing oras. Pag-uusapan natin ito nang higit pa mamaya.

2. Pagsasaayos ng Saklaw ng mga Random na Numero
2.1 Paglilimita ng Saklaw Gamit ang Modulo Operator
Kapag gumagawa ng mga random na numero, madalas mong kailanganin ang mga halaga sa loob ng tiyak na saklaw. Halimbawa, upang gumawa ng random na numero mula 1 hanggang 100, maaari mong iayus ang output ng rand()
function gamit ang modulo operator %
.
int numberInRange = rand() % 100 + 1; // Gumagawa ng random na numero mula 1 hanggang 100
Sa halimbawang ito, nakukuha natin ang natitira ng output ng rand()
na hinati sa 100, at pagkatapos ay magdagdag ng 1 upang gumawa ng random na numero mula 1 hanggang 100. Ang paggamit ng modulo operator ay nagpapadali sa paggawa ng mga random na numero sa loob ng anumang nais na saklaw.
2.2 Pagbuo ng Mga Random na Numero na Tiyak sa Saklaw
Para sa mas maluwag na kontrol sa saklaw ng random na numero, maaari kang gumawa at gumamit ng custom function. Narito ang halimbawa ng function na gumagawa ng random na numero sa loob ng tinukoy na minimum at maximum na saklaw.
int getRandomNumber(int min, int max) {
return rand() % (max - min + 1) + min;
}
Sa paggamit ng function na ito, maaari kang gumawa ng mga random na numero sa loob ng anumang saklaw, tulad ng getRandomNumber(1, 100)
.
3. Pagbabago ng Mga Pattern ng Random Number gamit ang `srand()`
3.1 Ano ang Function na `srand()`?
Kung gagamitin mo ang rand()
function tulad ng dati, parehong pattern ng random number ang mabubuo tuwing tatakbo ang programa. Ito ay katangian ng pseudo-random numbers, na maginhawa para sa debugging ngunit mapagproblema kapag kailangan ng praktikal na randomness. Upang tugunan ito, maaari mong gamitin ang srand()
function upang itakda ang random number seed, sa gayon ay binabago ang pattern ng nabuong random numbers.
3.2 Paano Gamitin ang Function na `srand()`
Ang srand()
function ay tinatawag bago ang rand()
upang tukuyin ang random number seed. Karaniwang, srand((unsigned int)time(NULL))
ang ginagamit upang itakda ang kasalukuyang oras bilang seed.
#include
#include
#include
int main(void) {
srand((unsigned int)time(NULL)); // Itakda ang kasalukuyang oras bilang seed
int randomNumber = rand();
printf("Binuong random number: %dn", randomNumber);
return 0;
}
Sa kodeng ito, srand()
ang nagbubuo ng iba’t ibang pattern ng random number tuwing pagkakataon. Dahil ang time(NULL)
ay nagbabalik ng kasalukuyang oras sa segundo, posible na itakda ang iba’t ibang seed tuwing pagkakataon.

4. Mga Praktikal na Aplikasyon ng Random Numbers
4.1 Paggamit ng Random Numbers sa Mga Laro
Madalas na ginagamit ang random numbers sa pagbuo ng laro. Halimbawa, ginagamit ang mga ito upang magtakda nang random ng mga posisyon ng karakter o magtakda ng mga probabililidad ng pagbagsak ng item. Sa ibaba ay isang halimbawa ng simulasyon ng pag-roll ng dice.
#include
#include
#include
int main(void) {
srand((unsigned int)time(NULL)); // Itakda ang seed
int diceRoll = rand() % 6 + 1; // Bumuo ng isang random na numero mula 1 hanggang 6
printf("Pag-roll ng dice: %dn", diceRoll);
return 0;
}
Ang program na ito ay bumubuo ng isang random na numero mula 1 hanggang 6, na inilalabas ito bilang isang pag-roll ng dice. Sa pamamagitan ng paggamit ng random numbers, madali mong maisasagawa ang mga hindi inaasahang elemento sa mga laro.
4.2 Monte Carlo Simulation
Ginagamit din ang random numbers sa mga simulasyon tulad ng Monte Carlo method. Gumagamit ang Monte Carlo method ng random numbers upang mag-approximate ng mga solusyon sa mga problema na mahirap na malutas nang analytically. Halimbawa, maaari mong mag-approximate ng halaga ng Pi (π) gamit ang random numbers.
#include
#include
#include
int main(void) {
int n_trials = 1000000;
int n_inside = 0;
double x, y, pi;
srand((unsigned int)time(NULL));
for (int i = 0; i < n_trials; i++) {
x = (double)rand() / RAND_MAX;
y = (double)rand() / RAND_MAX;
if (x * x + y * y <= 1) {
n_inside++;
}
}
pi = 4.0 * n_inside / n_trials;
printf("Na-approximate na π: %fn", pi);
return 0;
}
Ang program na ito ay isang halimbawa ng Monte Carlo method na nag-aapproximate ng Pi gamit ang random na mga punto. Gumagamit ito ng rand()
upang bumuo ng random numbers sa saklaw mula 0 hanggang 1, at pagkatapos ay gumagamit ng mga ito upang mag-approximate ng lugar ng isang bilog.

5. Mahahalagang Paalala para sa `rand()` at `srand()`
5.1 Pag-unawa sa Pseudo-randomness
Ang mga random na numero na ginagawa ng rand()
function ng C ay pseudo-random. Hindi sila tunay na random na values ngunit kinakalkula batay sa isang panloob na algorithm, na nangangahulugan na ang paggamit ng parehong seed ay magpo-produce ng parehong pattern ng random na numero. Habang kapaki-pakinabang ito para sa debugging, hindi ito angkop kapag kailangan ang tunay na randomness.
5.2 Mga Karaniwang Pagkakamali
Mga karaniwang pagkakamali sa paggamit ng random numbers ay kinabibilangan ng hindi paggamit ng srand()
o hindi pag-unawa sa output range ng rand()
. Sa partikular, kung hindi ka mag-set ng seed gamit ang srand()
bago gamitin ang rand()
, ang parehong pattern ng random numbers ay mabubuo tuwing oras. Gayundin, kapag ina-adjust ang range gamit ang rand() % n
, mag-ingat dahil ang value ng n
ay maaaring magdulot ng hindi inaasahang resulta.
Konklusyon
Ang pagbuo ng random na mga numero sa C ay ginagamit sa iba’t ibang larangan, tulad ng mga laro at simulasyon. Sa pamamagitan ng pag-unawa sa kung paano gamitin ang rand()
at srand()
mga function at tamang pagbuo ng random na mga numero, maaari kang magdagdag ng hindi inaasahang mga elemento sa iyong mga programa. Sangguni ang artikulong ito at subukan na lumikha ng mga programa na gumagamit ng random na mga numero.