C भाषा संग पाइको मान गणना गर्ने मार्गदर्शन | शुरुआतीदेखि उच्च-सटीक

1. C भाषामा π (पाई) गणना गर्ने महत्व र विधि

π (पाई) वृत्तको परिधि र व्यासको अनुपातको रूपमा परिभाषित हुन्छ, र गणितीय विज्ञान तथा इन्जिनियरिङ जस्ता क्षेत्रहरूमा अत्यन्त महत्वपूर्ण स्थिरांक हो। C भाषा प्रयोग गरेर पाई गणना गर्ने कार्यले एल्गोरिदमको समझ र संख्यात्मक गणनाको आधार सिक्ने ठूलो महत्व प्रदान गर्दछ। यस लेखमा, C भाषामा पाई प्राप्त गर्ने विभिन्न विधिहरूलाई चरणबद्ध रूपमा व्याख्या गरी, संख्यात्मक गणनामा रुचि राख्ने व्यक्तिहरूलाई व्यावहारिक ज्ञान प्रदान गरिन्छ।

2. C भाषा प्रयोग गरेर π को आधारभूत गणना विधि

Raipunittsu को श्रेणी प्रयोग गरेर π को गणना विधि

Raipunittsu को श्रेणी भनेको तल देखाइएका अनन्त श्रेणीलाई प्रयोग गरेर π गणना गर्ने विधि हो।

pi = 4 times left( 1 - frac{1}{3} + frac{1}{5} - frac{1}{7} + cdots right)

कार्यान्वयन उदाहरण

तलको प्रोग्राम C भाषा प्रयोग गरेर Raipunittsu को श्रेणीद्वारा π गणना गर्ने हो। प्रयोगकर्ताले निर्दिष्ट गरेको संख्या पटक गणना दोहोर्याएर π को नजिकको मान प्राप्त गरिन्छ।

#include <stdio.h>

int main() {
    int n, i;
    double pi = 0.0;
    int sign = 1;

    printf("कृपया गणना सङ्ख्या प्रविष्ट गर्नुहोस्: ");
    scanf("%d", &n);

    for (i = 0; i < n; i++) {
        pi += sign * (4.0 / (2 * i + 1));
        sign = -sign;
    }

    printf("पाईको अनुमानित मान: %.15fn", pi);
    return 0;
}

फाइदा: कार्यान्वयन सरल र बुझ्न सजिलो छ
नोक्सानी: सम्पूर्णता अत्यन्त ढिलो भएको कारण, उच्च शुद्धताको गणनाका लागि उपयुक्त छैन

3. Monte Carlo विधि द्वारा π को अनुमान

Monte Carlo विधि भनेको, वृत्तभित्र यादृच्छिक बिन्दुहरू राखेर, ती बिन्दुहरू वृत्तभित्र छन् कि बाहिर छन् भनेर निर्धारण गरी, सम्भावनात्मक रूपमा π निकाल्ने विधि हो।

कार्यान्वयन उदाहरण

तल C भाषामा Monte Carlo विधि प्रयोग गरेर π को नजिकको प्रोग्राम देखाइएको छ।

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main() {
    int n, i;
    int inside_circle = 0;
    double x, y, pi;

    printf("कृपया कुल अंकहरू प्रविष्ट गर्नुहोस्: ");
    scanf("%d", &n);

    srand(time(0));

    for (i = 0; i < n; i++) {
        x = (double)rand() / RAND_MAX;
        y = (double)rand() / RAND_MAX;

        if ((x * x + y * y) <= 1) {
            inside_circle++;
        }
    }

    pi = 4.0 * inside_circle / n;
    printf("π को अनुमानित मान: %.15fn", pi);

    return 0;
}

फाइदा: कार्यान्वयन सरल छ, र सम्भावनाको अवधारणा सिक्न सकिन्छ
नोक्सानी: सम्पूर्णता ढिलो भएको कारण, उच्च शुद्धताका π प्राप्त गर्न उपयुक्त छैन

4. Gauss‑Legendre एल्गोरिदम

Gauss‑Legendre एल्गोरिदमले थोरै दोहोर्याइमा अत्यन्त उच्च शुद्धतासँग π (पाइ) गणना गर्न सक्ने प्रभावकारी विधि हो।

कार्यान्वयन उदाहरण

#include <stdio.h>
#include <math.h>

int main() {
    double a = 1.0;
    double b = 1.0 / sqrt(2.0);
    double t = 0.25;
    double p = 1.0;
    double pi;
    int n, iterations;

    printf("कृपया पुनरावृत्ति संख्या प्रविष्ट गर्नुहोस्: ");
    scanf("%d", &iterations);

    for (n = 0; n < iterations; n++) {
        double a_next = (a + b) / 2.0;
        double b_next = sqrt(a * b);
        double t_next = t - p * pow(a - a_next, 2);

        a = a_next;
        b = b_next;
        t = t_next;
        p = 2 * p;
    }

    pi = pow(a + b, 2) / (4 * t);
    printf("π को अनुमानित मान: %.15fn", pi);

    return 0;
}

फाइदा: सम्पूर्णता अत्यन्त छिटो, उच्च शुद्धता
नोक्सानी: कार्यान्वयन जटिल छ, र संख्यात्मक गणनाको ज्ञान आवश्यक छ

5. Comparison of Accuracy and Efficiency

गणना विधिशुद्धतासम्पूर्ण गतिचलाउने समयअनुप्रयोग दृश्य
Leibniz seriesनिम्नढिलोलामोप्राथमिक कार्यान्वयन अभ्यास, अध्ययन
Machin’s formulaमध्यम‑उच्चछिटोतुलनात्मक रूपमा छोटोव्यावहारिक नजिकको मान आवश्यक परेमा
Monte Carlo methodमध्यमढिलोनमूना बिन्दु संख्यामा निर्भरसंभावना र तथ्यांक प्रयोग गरेर सिमुलेशन
Gauss‑Legendreअत्यन्त उच्चअत्यन्त छिटोछोटोउच्च शुद्धता आवश्यक गणना

6. सारांश

C भाषा प्रयोग गरेर π (पाइ) को गणना गर्ने विभिन्न तरिकाहरू छन्, जसमा अभिसरण गति, शुद्धता, र गणनात्मक जटिलता जस्ता पक्षहरूमा भिन्नता हुन्छ। कार्यक्रमको उद्देश्य र आवश्यक शुद्धता अनुसार उपयुक्त विधि चयन गरौं। यदि उच्च शुद्धताका पाइ गणना आवश्यक छ भने गाउस‑लुजेंडर एल्गोरिदम, सरल कार्यान्वयन चाहनुहुन्छ भने लाइप्निज श्रृंखला आदि, अध्ययनको सामग्री अनुसार प्रयोग गर्ने राम्रो हुन्छ।

侍エンジニア塾