Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> सी प्रोग्रामिंग

C प्रोग्राम: द्विपद गुणांक तालिका

द्विपद गुणांक क्या है?

द्विपद गुणांक 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;
}
  1. C प्रोग्राम: आयत का क्षेत्रफल और परिमाप C प्रोग्राम: आयत का क्षेत्रफल और परिमाप

    एक आयत की लंबाई और चौड़ाई दी गई है, हमें उसका क्षेत्रफल और परिमाप निकालना है। आयत एक 2-D आकृति है जिसमें चार भुजाएं और चार 90° के कोण होते हैं। विपरीत भुजाएं समान होती हैं। विकर्ण भी समान होते हैं। क्षेत्रफल = लंबाई × चौड़ाई परिमाप = 2 × (लंबाई + चौड़ाई) उदाहरण इनपुट: 20 30 आउटपुट: area of rectangl

  1. C++ में सरणी के एलिमेंट्स का गुणनफल C++ में सरणी के एलिमेंट्स का गुणनफल

    पूर्णांक एलिमेंट्स की एक सरणी दी गई है और कार्य सरणी के एलिमेंट्स को गुणा करना और प्रदर्शित करना है। उदाहरण इनपुट-: arr[]={1,2,3,4,5,6,7} आउटपुट-: 1 x 2 x 3 x 4 x 5 x 6 x 7 = 5040 इनपुट-: arr[]={3, 4,6, 2, 7, 8, 4} आउटपुट-: 3 x 4 x 6 x 2 x 7 x 8 x 4 = 32256 नीचे दिए गए प्रोग्राम में उपयोग किया गया द

  1. C++ में ऑक्टल से डेसिमल रूपांतरण C++ में ऑक्टल से डेसिमल रूपांतरण

    एक ऑक्टल संख्या इनपुट के रूप में दी गई है, कार्य दी गई ऑक्टल संख्या को डेसिमल संख्या में बदलना है। कंप्यूटर में डेसिमल संख्याओं को आधार 10 के साथ दर्शाया जाता है और ऑक्टल संख्या को आधार 8 के साथ दर्शाया जाता है जो अंक 0 से 7 तक होती है जबकि डेसिमल संख्याएं 0-9 से शुरू होने वाला कोई भी संख्यात्मक अंक