Pi帮助Php(大规模循环)

时间:2010-06-16 11:20:38

标签: php loops pi

我的主要问题是: 这有很多循环吗?

while ($decimals < 50000 and $remainder != "0") {
$number = floor($remainder/$currentdivider); //Always round down! 10/3 =3, 10/7 = 1
$remainder = $remainder%$currentdivider; // 10%3 =1, 10%1
$thisnumber = $thisnumber . $number;
$remainder = $remainder . 0; //10
$decimals += 1;
}

或者我可以更适合它吗? - 没有服务器崩溃/滞后。

我只是想知道, 还有一种更有效的做法吗? (例如,输出1/3 = 0.3到50,000小数。)

最后:

我正在为pi公式(1 - 1/3 + 1/5 - 1/7等)做这个,

我想知道是否有更好的一个。 (在PHP中) 我找到了一个在4秒内找到pi到2000的人。

但那不是我想要的。我想要一个接近Pi的无限系列

所以每次刷新,用户都可以看到它越来越近了......

但是obv。使用上述公式收敛需要花费很长时间。

是否有任何其他'循环'像Pi公式(可在PHP中使用)更快收敛?

非常感谢...

2 个答案:

答案 0 :(得分:2)

这里有几个计算Pi的公式:

http://mathworld.wolfram.com/PiFormulas.html

所有这些都在PHP中“可行”,就像在任何其他编程语言中一样。另一个问题是它们的速度有多快或者实施起来有多困难。

如果公式收敛得更快或更慢,这是一个数学问题,而不是关于编程,所以我无法帮助你。我可以告诉你,作为一个拇指规则,你放置的嵌套循环越少,你的算法就越快(这是一般规则,不要把它当作绝对真理!)

无论如何,由于Pi的数字在某个数字之前是已知的,为什么不将它复制到文件中然后将其编入索引呢?这将是非常快的:)

您可以查看以前类似问题的答案: How can pi be calculated to a set number of digits in PHP? https://stackoverflow.com/questions/3045020/which-is-the-best-formulae-to-find-pi

答案 1 :(得分:1)

检查http://mathworld.wolfram.com/PiIterations.html(取自上一个答案)。这些公式使用迭代,因此可以使用循环实现。 您应该使用谷歌搜索“php implementation xxxxxxx”(其中xxxxxx代表您要搜索的算法名称)。

编辑Here is an implementation of Vietas formula using a while-loop in php.