2009-11-24 2 views
5

PHP에서 X의 십진수까지의 pi 값을 어떻게 계산할 수 있습니까?pi는 PHP에서 설정된 자릿수로 어떻게 계산 될 수 있습니까?

소수점 이하 4 점

3.141

64 소수점

3.141592653589793238462643383279502884197169399375105820974944592

+0

주된 문제는 pi의 값을 10 진수 100000까지 계산하는 것입니다 ... – d3vdpro

+0

Nit picky이지만 '3'은 소수점 이하 자리 ('.')보다 작기 때문에 각각 3 자리와 63 자리의 십진수 만 있습니다. – ajp15243

답변

0

php에서 PI 계산?

우리가 이미 M_PI 상수를 가지고있을 때 계산하는 이유는 무엇입니까?

M_PI의 값은 3.14159265358979323846입니다.

소수점 이하 자릿수는 소수입니다.

참조 : 그 PHP에 포함 된 PI 상수보다 더 나은되지 않습니다하지만 http://www.php.net/manual/en/math.constants.php

+3

분명히 php.ini에서'pi()'/'M_PI'의 정밀도를 설정할 수 있습니다. 그것이 11^H 100K로가는 지 확실하지 않습니다. :) http://php.net/manual/en/function.pi.php – deceze

+1

너무 나쁘다는 것은 분명히 내 시스템에서 최소한 48 개로 만 이동합니다. :) – deceze

+0

덕분에 그것을 해결해 주셔서 감사합니다! – mauris

-4

PHP는, 7분의 22는 PI를 계산하는 고대 방법입니다 그만큼 지금까지 내가 아는 한 번호를 보유 할 수는 없지만 . 아마도 당신은 운동으로 PI의 긴 문자열을 출력하려고합니다.

+3

22/7은 정확하지 않습니다. 네이티브 PHP 상수는 주어진 시스템에서 가능할 정도로 정밀도가 정확합니다. – Dan

3

끊어진 링크 원본 찾기 @Konamiman 게시했습니다.

결과를 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

Pi를 Chudnosky 시리즈로 계산할 수 있습니다. 매우 높은 양의 서버가있는 경우 Pi를 여러 소수 자릿수로 쉽게 계산할 수 있습니다. 그런 다음 특정 소수점으로 가져 오려는 경우 실제로 큰 숫자로 노력을 늘리고 substr을 사용하여 필요한 소수 자릿수로 줄이십시오. 이 프로세스가 매우 느린 경우 Google에서 검색하여 파이 값을 얻을 수 있습니다.

+0

시리즈가 천천히 수렴함에 따라 매우 느린 방법입니다. –

+1

@Salixalba 당신이 볼 수 있니, 나는 거기에 '... 매우 높은 숫양을 가진 서버 ...'라고 쓰여있다. –

+0

http://en.wikipedia.org/wiki/Leibniz_formula_for_%CF%80 시리즈의 직접 합계를 사용하여 π ~ 10 개의 올바른 소수점을 계산하면 약 5,000,000,000 개의 용어가 필요합니다. 이 문제에 더 많은 숫양을 던지면 http://en.wikipedia.org/wiki/Approximations_of_%CF%80의 수식과 다른 수식을 시도하는 것이 훨씬 도움이되지 않습니다. –