1. C भाषामा π (पाई) गणना गर्ने महत्व र विधि
π (पाई) वृत्तको परिधि र व्यासको अनुपातको रूपमा परिभाषित हुन्छ, र गणितीय विज्ञान तथा इन्जिनियरिङ जस्ता क्षेत्रहरूमा अत्यन्त महत्वपूर्ण स्थिरांक हो। C भाषा प्रयोग गरेर पाई गणना गर्ने कार्यले एल्गोरिदमको समझ र संख्यात्मक गणनाको आधार सिक्ने ठूलो महत्व प्रदान गर्दछ। यस लेखमा, C भाषामा पाई प्राप्त गर्ने विभिन्न विधिहरूलाई चरणबद्ध रूपमा व्याख्या गरी, संख्यात्मक गणनामा रुचि राख्ने व्यक्तिहरूलाई व्यावहारिक ज्ञान प्रदान गरिन्छ।
2. C भाषा प्रयोग गरेर π को आधारभूत गणना विधि
Raipunittsu को श्रेणी प्रयोग गरेर π को गणना विधि
Raipunittsu को श्रेणी भनेको तल देखाइएका अनन्त श्रेणीलाई प्रयोग गरेर π गणना गर्ने विधि हो।
कार्यान्वयन उदाहरण
तलको प्रोग्राम 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 भाषा प्रयोग गरेर π (पाइ) को गणना गर्ने विभिन्न तरिकाहरू छन्, जसमा अभिसरण गति, शुद्धता, र गणनात्मक जटिलता जस्ता पक्षहरूमा भिन्नता हुन्छ। कार्यक्रमको उद्देश्य र आवश्यक शुद्धता अनुसार उपयुक्त विधि चयन गरौं। यदि उच्च शुद्धताका पाइ गणना आवश्यक छ भने गाउस‑लुजेंडर एल्गोरिदम, सरल कार्यान्वयन चाहनुहुन्छ भने लाइप्निज श्रृंखला आदि, अध्ययनको सामग्री अनुसार प्रयोग गर्ने राम्रो हुन्छ।