2009-11-24 20 views
5

मैं PHP में x दशमलव संख्या तक पीआई के मान की गणना कैसे कर सकता हूं।PHP में अंकों की एक निश्चित संख्या में पीआई की गणना कैसे की जा सकती है?

4 दशमलव अंक

3,141

64 दशमलव अंक

3,141592653589793238462643383279502884197169399375105820974944592

+0

मुख्य समस्या 100i दशमलव संख्या तक pi के मान की गणना कर रही है ... – d3vdpro

+0

Nit picky, लेकिन '3' दशमलव स्थिति में नहीं है (दशमलव बिंदु के बाद एक अंक स्थिति, '.'), तो उन संख्याओं क्रमशः केवल 3 और 63 दशमलव अंक हैं। – ajp15243

उत्तर

0

पीएच में पीआई की गणना?

क्यों गणना करें जब हमारे पास पहले से ही M_PI स्थिर है?

M_PI मूल्य 3.14159265358979323846 है।

पीआई के लिए 10000 दशमलव स्थान काफी संख्या है।

देखें: http://www.php.net/manual/en/math.constants.php

+3

स्पष्ट रूप से आप php.ini में 'pi()'/'M_PI' की परिशुद्धता सेट कर सकते हैं। यकीन नहीं है कि यह 11^एच 100 के हालांकि जाता है। :) http://php.net/manual/en/function.pi.php – deceze

+1

बहुत बुरा, जाहिर है, यह केवल मेरे सिस्टम पर कम से कम 48 हो जाता है। :) – deceze

+0

काम करने के लिए धोखा देने के लिए धन्यवाद! – mauris

-4

पीएचपी एक संख्या है कि लंबे समय के रूप तक मुझे पता है पकड़ कर सकते, लेकिन 22/7 पीआई गणना करने के लिए एक प्राचीन तरीका है, हालांकि है कि किसी भी पीआई लगातार PHP में शामिल की तुलना में बेहतर नहीं होगा । शायद आप एक अभ्यास के रूप में पीआई की एक लंबी स्ट्रिंग आउटपुट करने की कोशिश कर रहे हैं।

+3

22/7 शायद ही सटीक है; मूल PHP स्थिरता किसी दिए गए सिस्टम पर सटीक सटीकता के लिए कम से कम सटीक है। – Dan

3

टूटी हुई लिंक @ कोनामीमन पोस्ट करने के लिए स्रोत मिला।

परिणामों की तुलना में: http://www.angio.net/pi/digits/50.txt और वे वही हैं।

// Source: http://mgccl.com/2007/01/22/php-calculate-pi-revisited 
function bcfact($n) 
{ 
    return ($n == 0 || $n== 1) ? 1 : bcmul($n,bcfact($n-1)); 
} 
function bcpi($precision) 
{ 
    $num = 0;$k = 0; 
    bcscale($precision+3); 
    $limit = ($precision+3)/14; 
    while($k < $limit) 
    { 
     $num = bcadd($num, bcdiv(bcmul(bcadd('13591409',bcmul('545140134', $k)),bcmul(bcpow(-1, $k), bcfact(6*$k))),bcmul(bcmul(bcpow('640320',3*$k+1),bcsqrt('640320')), bcmul(bcfact(3*$k), bcpow(bcfact($k),3))))); 
     ++$k; 
    } 
    return bcdiv(1,(bcmul(12,($num))),$precision); 
} 

echo bcpi(1000); 
0

आप Chudnosky श्रृंखला के द्वारा पाई गणना कर सकते हैं। यदि आपके पास एक बहुत उच्च रैम वाला सर्वर है तो आप आसानी से पीआई को कई दशमलव स्थानों पर गणना कर सकते हैं। यदि आप इसे किसी विशिष्ट दशमलव स्थान पर प्राप्त करना चाहते हैं, तो वास्तव में बड़ी संख्या में प्रयासों को बढ़ाएं और substr का उपयोग अपने आवश्यक दशमलव स्थान पर छोटा करने के लिए करें। अगर आपको लगता है कि यह प्रक्रिया बहुत धीमी है, तो आप इसे Google पर खोजकर पीआई मान प्राप्त कर सकते हैं।

+0

यह यह करने के लिए श्रृंखला के रूप में धीरे-धीरे अभिसरण एक बहुत ही धीमी गति से रास्ता है। –

+1

@Salixalba आप देख सकते हैं, मैं वहाँ लिखा है '... एक बहुत ही उच्च राम के साथ एक सर्वर ...'। –

+0

http://en.wikipedia.org/wiki/Leibniz_formula_for_%CF%80 श्रृंखला के प्रत्यक्ष योग का उपयोग कर 10 सही दशमलव स्थानों के लिए π की गणना कर रहा से 5000000000 के बारे में संदर्भ की आवश्यकता है। समस्या पर अधिक राम फेंकने http://en.wikipedia.org/wiki/Approximations_of_%CF%80 पर उन जैसे एक अलग सूत्र कोशिश करने के लिए ज्यादा बेहतर मदद नहीं करेगा –

संबंधित मुद्दे