X個の10進数までPHPでpiの値を計算するにはどうすればよいですか?
小数点以下4桁
3.141
小数点以下64桁
3.141592653589793238462643383279502884197169399375105820974944592
@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);
PHPでPIを計算していますか?
M_PI
すでに定数があるのに、なぜ計算するのでしょうか?
M_PI
値が含まれています3.14159265358979323846
。
PI の小数点以下 10000 桁はかなりの数です。
チュドノスキー級数で円周率を計算できます。非常に高いRAMを備えたサーバーを使用している場合、Piを小数点以下の桁数まで簡単に計算できます. 特定の小数点以下の桁数にしたい場合は、努力を非常に大きな数に増やし、substrを使用して必要な小数点以下の桁数に短縮します。このプロセスが非常に遅いと思われる場合は、Google で検索して pi 値を取得できます。
PHPは、私が知る限り、数値を保持することはできませんが、22/7はPIを計算するための古い方法ですが、PHPに含まれるPI定数よりも優れているわけではありません。おそらく、演習としてPIの長い文字列を出力しようとしています。