- 1 1. Ano ang Pagkalkula ng Factorial sa C?
- 2 2. Pangunahing Pagkalkula ng Factorial sa C: Gamit ang for Loops
- 3 3. Pagkalkula ng mga Factorial Gamit ang Recursion
- 4 4. Paghawak ng Error at Pagsasaalang-alang sa Uri ng Data
- 5 5. Mga Praktikal na Aplikasyon ng Kalkulasyon ng Factorial
- 6 6. Pag-optimize ng Performance
- 7 7. Buod at Susunod na Hakbang
1. Ano ang Pagkalkula ng Factorial sa C?
Tinutukoy ng artikulong ito ang mga batayan ng pagkalkula ng factorial sa C. Ang factorial ay ang produkto ng lahat ng positibong integer mula 1 hanggang sa isang ibinigay na natural na bilang n. Sa matematika, ito ay ipinapahayag bilang sumusunod:
- n! = n × (n – 1) × (n – 2) × … × 1
Ang mga pagkalkula ng factorial ay may mahalagang papel sa maraming aplikasyon sa matematika, tulad ng kombinasyon, teorya ng probabilidad, at mga sunod-sunod. Halimbawa, ang 3! (factorial ng 3) ay 3 × 2 × 1 = 6. Sa artikulong ito, ipapaliwanag namin nang detalyado kung paano ipatupad ang mga factorial sa programang C.
2. Pangunahing Pagkalkula ng Factorial sa C: Gamit ang for Loops
Magsimula tayo sa pag-aaral kung paano kalkulahin ang mga factorial gamit ang for loop. Ang pamamaraang ito ay hindi gumagamit ng recursion, kaya medyo simple at madaling maunawaan.
Pangunahing Implementasyon gamit ang for Loop
Narito ang halimbawa ng code para sa pagkalkula ng mga factorial gamit ang for loop sa C:
#include <stdio.h>
int main() {
int n, i;
unsigned long long factorial = 1; // Variable to store the result
printf("Enter an integer: ");
scanf("%d", &n);
// Show an error message for negative input
if (n < 0)
printf("Factorial of a negative number does not exist.n");
else {
// Calculate factorial
for (i = 1; i <= n; ++i) {
factorial *= i;
}
printf("Factorial of %d = %llun", n, factorial);
}
return 0;
}
Paliwanag
- Ang dahilan ng paggamit ng uri na
unsigned long longay dahil ang mga factorial ay mabilis na nagiging napakalaking numero. Ang karaniwang uri naintay hindi kayang hawakan ang ganitong laki, kaya gumagamit tayo ng data type na may mas malawak na saklaw. - Ang loop ay inuulit mula 1 hanggang n, pinapamultiplika ang
factorialsa kasalukuyang halaga sa bawat pag-ikot.
Ang pamamaraang ito ay simple at nagsisilbing pundasyon para maunawaan kung paano kinukuwenta ang mga factorial. Susunod, tatalakayin natin ang isa pang paraan gamit ang recursion.
3. Pagkalkula ng mga Factorial Gamit ang Recursion
Maaaring ipatupad ang mga factorial gamit ang recursion. Ang mga recursive na function ay nagpapapaikli ng code at konseptwal na mas malapit sa matematikal na depinisyon ng factorial.
Implementasyong Recursive
Narito ang halimbawa kung paano kalkulahin ang mga factorial sa C gamit ang isang recursive na function:
#include <stdio.h>
// Recursive function definition
unsigned long long factorial(int n) {
if (n == 0 || n == 1)
return 1; // Base case: factorial of 0 or 1 is 1
else
return n * factorial(n - 1); // Recursive call
}
int main() {
int n;
printf("Enter an integer: ");
scanf("%d", &n);
if (n < 0)
printf("Factorial of a negative number does not exist.n");
else
printf("Factorial of %d = %llun", n, factorial(n));
return 0;
}
Paliwanag
- Ang recursive na function ay unang nagtatakda ng base case (kapag ang n ay 0 o 1). Kung wala ang kondisyong ito, magpapatuloy ang recursion nang walang katapusan, kaya mahalaga ang tamang kondisyon ng pagtatapos.
- Ang pamamaraang recursive na ito ay napakalapit sa matematikal na depinisyon ng factorial (n! = n × (n – 1)!), kaya madaling maunawaan nang intuitibo.
Ang recursion ay nagpapabuti sa nababasa at kasimplihan ng code, ngunit para sa napakalaking numero, maaaring mas mabilis ang pamamaraang batay sa loop kaysa sa recursion.

4. Paghawak ng Error at Pagsasaalang-alang sa Uri ng Data
Kapag nagkakalkula ng mga factorial, maaaring maging napakalaki ang resulta na magdulot ng overflow. Kailangan mo rin ng paghawak ng error para sa mga negatibong numero.
Pag-iwas sa Overflow
Dahil mabilis na lumalaki ang mga factorial, hindi sapat ang karaniwang uri na int. Kaya gumagamit tayo ng unsigned long long upang hawakan ang mas malalaking halaga, tulad ng ipinakita sa code sa itaas.
Gayunpaman, kung kailangan mong humawak ng mas mas malaking numero, isaalang-alang ang paggamit ng big integer library (tulad ng GNU MP).
Paghawak ng Error para sa Negatibong Numero
Ang mga factorial ay hindi tinutukoy para sa negatibong numero, kaya kailangan mong magpakita ng mensahe ng error kapag nagpasok ang gumagamit ng negatibong integer.
if (n < 0)
printf("Factorial of a negative number does not exist.n");
Ito ay nagsisiguro na ang hindi angkop na input ay nahahawakan nang angkop.
5. Mga Praktikal na Aplikasyon ng Kalkulasyon ng Factorial
Ang mga factorial ay malawak na ginagamit sa matematika at mga algoritmo. Narito ang ilang praktikal na halimbawa kung paano ginagamit ang mga factorial:
Mga Kalkulasyon ng Kombinasyon
Ang mga kombinasyon ay ginagamit upang matukoy ang bilang ng mga paraan upang pumili ng isang subset ng mga item mula sa isang grupo, at ang mga factorial ay ginagamit sa mga kalkulasyong ito. Ang formula ay:
- C(n, r) = n! / (r! * (n – r)!)
Kapag ipinapatupad ito sa C, madali mong maipapabalik ang iyong function ng factorial.
Mga Kalkulasyon ng Probability
Ang mga factorial ay madalas ding ginagamit sa teorya ng probability, lalo na kapag nagtatrabaho sa mga permutasyon at kombinasyon.
6. Pag-optimize ng Performance
May ilang paraan upang i-optimize ang performance ng mga kalkulasyon ng factorial. Sa mga recursive function, ang performance ay maaaring bumaba habang lumalalim ang mga kalkulasyon, kaya ang memoization at loop optimization ay makakatulong.
Pag-optimize gamit ang Memoization
Ang memoization ay isang teknik kung saan mo iniimbak ang mga naitalang resulta at muling ginagamit ang mga ito upang maiwasan ang mga paulit-ulit na kalkulasyon. Ito ay makakapigil sa malalim na recursion at mapapabuti ang performance.
7. Buod at Susunod na Hakbang
Sa artikulong ito, tinalakay natin ang mga basic ng kalkulasyon ng factorial sa C, kabilang ang recursion, error handling, at performance optimization. Ang mga factorial ay isang mahalagang konsepto sa mga matematikal na problema at mga algoritmo. Gamitin ang artikulong ito bilang sanggunian at subukan na lumikha ng sarili mong mga programa na gumagamit ng mga factorial!
Susunod na Hakbang
Subukan na ilapat ang mga kalkulasyon ng factorial sa mga tunay na proyekto o aplikasyon. Halimbawa, isaalang-alang ang mga hamon na ito:
- Hamunin ang mas advanced na mga algoritmo Harapin ang mga problema na kinabibilangan ng kombinasyon o probability, at gumamit ng mga kalkulasyon ng factorial upang ipatupad ang mga komplikadong algoritmo. Madalas na nakikita ang mga factorial sa competitive programming at mga matematikal na hamon, kaya ang pagsasanay ay magbubuo ng praktikal na kasanayan.
- I-optimize para sa malalaking dataset Kapag nagtatrabaho sa malalaking dataset, ang performance optimization para sa kalkulasyon ng factorial ay mahalaga. Sanayin ang pagsusulat ng efficient na code gamit ang memoization o dynamic programming.



