0

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

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 秒内找到 2000 的 pi。

但这不是我想要的。我想要一个更接近 Pi 的无限级数

所以每次刷新,用户都可以更近距离地查看它......

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

是否有任何其他“循环”,如 Pi 公式(可在 php 中使用)收敛速度更快?

非常感谢...

4

2 回答 2

2

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

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

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

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

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

您可以查看以前对类似问题的回答: 如何在 PHP 中将 pi 计算为一组数字? https://stackoverflow.com/questions/3045020/which-is-the-best-formulae-to-find-pi

于 2010-06-16T11:25:02.870 回答
1

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

编辑这是在 php 中使用 while 循环的 Vietas 公式的实现。

于 2010-06-16T11:36:41.640 回答