我怎樣才能計算在PHP的pi值到X十進制數。pi如何計算到PHP中的一組數字?
4小數點
3.141
64個小數點
3.141592653589793238462643383279502884197169399375105820974944592
我怎樣才能計算在PHP的pi值到X十進制數。pi如何計算到PHP中的一組數字?
4小數點
3.141
64個小數點
3.141592653589793238462643383279502884197169399375105820974944592
在php中計算PI?
爲什麼計算當我們已經有M_PI
常量?
M_PI
包含值3.14159265358979323846
。
PI的10000小數位數不勝枚舉。
PHP不能容納一個數字,只要據我所知,但22/7是一種古老的方法來計算PI,儘管這會不會比包含在PHP中的PI常數更好。也許你試圖輸出一串長長的PI作爲練習。
22/7很難準確;本地PHP常量至少精確到給定系統上的可能精度。 – Dan 2013-12-18 05:24:28
發現破碎的鏈接的來源@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);
你可以通過Chudnosky系列計算Pi。如果你有一個非常高的內存的服務器,你可以很容易地計算Pi到許多小數位。如果你想把它帶到某個特定的小數位,那麼請增加一個非常大的數字,並使用substr將它縮短到所需的小數位。如果你認爲這個過程非常緩慢,那麼你可以通過在谷歌搜索獲得pi值。
這是一個非常緩慢的方式來做到這一點,因爲該系列收斂緩慢。 – 2014-08-18 10:14:52
@Salixalba你能看到,我寫過那裏'...一個非常高的內存服務器...'。 – 2014-08-18 10:19:06
從http://en.wikipedia.org/wiki/Leibniz_formula_for_%CF%80使用該系列的直接求和計算π到10個正確的小數位數需要大約5,000,000,000個項。對這個問題投入更多的內疚並不會更好地嘗試一種不同的公式,例如http://en.wikipedia.org/wiki/Approximations_of_%CF%80 – 2014-08-18 10:35:41
主要問題是pi計算值高達100000十進制數字... – d3vdpro 2009-11-24 08:10:00
Nit挑剔,但'3'不在小數點位置(小數點後的數字位置,'.'),所以這些數字只有3位和63位十進制數字。 – ajp15243 2014-09-07 02:37:21