द्विपद गुणांक क्या है?
द्विपद गुणांक C(n, k) या ⁿCₖ, n वस्तुओं में से k वस्तुओं को चुनने के तरीकों की संख्या दर्शाता है।
सूत्र: ⁿCₖ = n! / (k! × (n-k)!)
जहां n ≥ k ≥ 0
उदाहरण
C(9, 2) = 9! / (2! × 7!) = (9 × 8) / (2 × 1) = 36
पास्कल त्रिकोण / द्विपद गुणांक तालिका
इनपुट: value = 5
0 1 1 1 1 2 1 2 1 3 1 3 3 1 4 1 4 6 4 1 5 1 5 10 10 5 1
कुशल पुनरावृत्ति संबंध
फैक्टोरियल की गणना किए बिना, हम उपयोग करते हैं:
C(n, k) = C(n, k-1) × (n - k + 1) / k
यह O(1) स्थान और O(n²) समय में तालिका बनाता है।
C प्रोग्राम
#include <stdio.h>
void bin_table(int val) {
for (int i = 0; i <= val; i++) {
printf("%2d", i);
int num = 1;
for (int j = 0; j <= i; j++) {
if (i != 0 && j != 0)
num = num * (i - j + 1) / j;
printf("%4d", num);
}
printf("\n");
}
}
int main() {
int value;
printf("मान दर्ज करें (0-20): ");
scanf("%d", &value);
if (value < 0 || value > 20) {
printf("मान 0 से 20 के बीच होना चाहिए\n");
return 1;
}
bin_table(value);
return 0;
}
आउटपुट (value = 5 के लिए)
0 1 1 1 1 2 1 2 1 3 1 3 3 1 4 1 4 6 4 1 5 1 5 10 10 5 1
अनुप्रयोग
- संभाव्यता सिद्धांत - द्विपद वितरण
- कॉम्बिनेटोरिक्स - संयोजन गणना
- बीजगणित - (a+b)ⁿ का विस्तार
- कंप्यूटर विज्ञान - एल्गोरिदम विश्लेषण
बड़े मानों के लिए अनुकूलन
// long long का उपयोग करके बड़े मानों के लिए
long long binom(int n, int k) {
if (k > n - k) k = n - k;
long long res = 1;
for (int i = 0; i < k; i++) {
res = res * (n - i) / (i + 1);
}
return res;
}