试图用php

时间:2015-05-11 22:12:25

标签: php pi approximation calculus

我一直试图用不同的方法创建一些pi近似值,而Chudnovsky算法看起来很有趣,但我遇到了障碍。

roadblock

以下是代码:

$pi =0;
for ($k = 0; $k < 1; $k++) {
    $pi += (($k%2==1?-1.0:1.0) * gmp_fact(6 * $k) * (13591409.0 + (545140134.0 * $k))) / (gmp_fact(3.0 * $k) * pow(gmp_fact($k), 3.0) * pow(640320.0, 3.0 * $k + 3.0/2.0));
}
$pi *= 12;
echo 1/$pi;

运行这个给我301.59289474461。

我是php的新手,并认为这将是一次很好的培训,所以请原谅我,如果这是业余工作。

我也意识到在c ++中有一个类似的帖子,我试过并且成功了,但这仍然存在。我已经使用堆栈交换来解决许多其他问题,所以我希望你能帮忙!

1 个答案:

答案 0 :(得分:2)

确保安装了gmp扩展,并且在php中使用gmp函数时始终使用 gmp_strval()以避免 gmp_fact对象的地址乘以其他变量 。 来自php.net:http://php.net/manual/en/function.gmp-fact.php#refsect1-function.gmp-fact-returnvalues

response