1. Panimula
Ang wikang C ay malawakang ginagamit sa low‑level system programming at pagbuo ng mga laro. Sa dami ng mga aplikasyon nito, madalas na ginagamit ang “random number generation.” Halimbawa, ito ay ginagamit upang lumikha ng mga random na elemento sa mga laro, magsagawa ng mga simulation, mag‑encrypt, at gumawa ng test data, kasama ang marami pang ibang gamit.
Ang artikulong ito ay nagpapaliwanag kung paano lumikha ng mga random na numero sa loob ng tinukoy na saklaw sa C, gamit ang mga konkretong halimbawa. Dinisenyo ito upang matulungan ang mga mambabasa na maunawaan ang mekanismo ng random number generation at magamit ito sa mga totoong programa.
2. Mga Batayan ng Random Number Generation sa C
Sa C, ang mga random na numero ay nililikha gamit ang standard library na <stdlib.h>. Ang function na rand() ay nagbubuo ng integer na random numbers sa saklaw mula 0 hanggang RAND_MAX (humigit‑kumulang 2147483647). Gayunpaman, kung gagamitin mo ang parehong seed value, pareho ring sunod‑sunod na random numbers ang malilikha sa bawat pagtakbo.
Pagbuo ng Pseudo‑Random Numbers at Pagtatakda ng Seed Value
Isang mahalagang konsepto sa random number generation ay ang “seed value.” Ang seed ay nagtatakda ng panimulang punto ng sunod‑sunod na random numbers. Kung hindi ito itatakda, lilikha ang programa ng parehong mga numero sa bawat pagtakbo. Upang maiwasan ito, gamitin ang function na srand() upang itakda ang seed. Karaniwan, ang function na time() ay ginagamit upang itakda ang kasalukuyang oras bilang seed.
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
srand((unsigned int)time(NULL));
printf("%dn", rand());
return 0;
}
Nagsisiguro ito na iba‑ibang random numbers ang malilikha sa bawat pagtakbo ng programa.
3. Pagbuo ng Random Numbers sa Loob ng Tinakdang Saklaw
Kung nais mo ng random number sa loob ng isang tiyak na saklaw, kailangan mong mag‑apply ng mga operasyong matematika sa resulta ng function na rand(). Ang pangunahing formula para sa pagbuo ng random number sa isang saklaw ay:
rand() % (max - min + 1) + min
Nagbubuo ito ng integer na random number sa pagitan ng min at max (kasama ang parehong dulo).
Halimbawang Code: Random Number Generation sa Loob ng Saklaw
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
int min = 1;
int max = 100;
srand((unsigned int)time(NULL));
int random_number = rand() % (max - min + 1) + min;
printf("Random number between %d and %d: %dn", min, max, random_number);
return 0;
}
Ang code na ito ay lumilikha at nagpi‑print ng random number sa pagitan ng 1 at 100.
4. Pagbuo ng Random Floating‑Point Numbers
Upang lumikha ng floating‑point na random numbers, gamitin ang function na rand() kasama ang RAND_MAX para sa scaling. Upang makakuha ng random number sa pagitan ng 0.0 at 1.0, gamitin ang sumusunod na code:
Halimbawang Code: Random Floating‑Point Number Generation
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
srand((unsigned int)time(NULL));
double random_number = (double)rand() / RAND_MAX;
printf("Random number between 0.0 and 1.0: %fn", random_number);
return 0;
}
Ang programang ito ay lumilikha ng random numbers sa saklaw na 0 1. Sa pamamagitan ng pag‑scale, maaari kang lumikha ng random numbers sa anumang floating‑point na saklaw. Halimbawa, upang makakuha ng numero sa pagitan ng 0.0 at 5.0, i‑multiply ang resulta ng 5.

5. Praktikal na Mga Aplikasyon ng Random Numbers
Simulasyon ng Dice
Sa pagbuo ng laro, ang simulasyon ng dice ay isang karaniwang halimbawa ng paggamit ng random numbers. Ang sumusunod na code ay lumilikha ng random number sa pagitan ng 1 at 6 upang magsimula ng dice roll:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
srand((unsigned int)time(NULL));
int dice_roll = rand() % 6 + 1;
printf("Dice roll: %dn", dice_roll);
return 0;
}
Pagtatantiya ng Pi Gamit ang Monte Carlo Method
Ang Monte Carlo method ay gumagamit ng random numbers upang tantiyahin ang mga solusyon sa mga problemang mahirap lutasin nang analytically. Ang sumusunod na code ay nagpapakita ng pagtatantiya ng π gamit ang random numbers:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
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("Approximated π: %fn", pi);
return 0;
}
Ang metodong ito ay nagkakalkula ng π sa pamamagitan ng pagbuo ng mga random na numero at pagtatasa kung gaano karaming nahuhulog sa loob ng isang unit circle. Ito ay malawak na ginagamit sa mga simulasyon ng pisika at probabilistic modeling.
6. Konklusyon
Sa artikulong ito, tinalakay natin kung paano gumawa ng mga random na numero sa loob ng isang tinukoy na saklaw sa C. Pinag-usapan natin ang basic na paggamit ng rand() at srand(), pagbuo ng mga numero sa parehong integer at floating-point ranges, at sinuri ang mga practical na aplikasyon tulad ng dice simulations at ang Monte Carlo method. Ang random number generation ay isang mahalagang technique sa maraming fields, kabilang ang game development at simulations.
Subukan mong ilapat ang mga teknik na ito sa iyong mga hinaharap na proyekto upang mapahusay ang functionality at variability.


