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の小数を見つけます。)

ついに:

私は円周率の数式(1-1/3 + 1/5-1/7など)のためにこれを行っています、

そして、もっと良いものがあるかどうか疑問に思います。(phpで)4秒で2000までの円周率を見つけるものを見つけました。

しかし、それは私が望んでいることではありません。円周率に近づく無限級数が欲しい

したがって、更新するたびに、ユーザーはそれが近づくのを見ることができます...

しかし、obv。上記の式を使用して収束するには、時間がかかります。

より速く収束する円周率式(phpで実行可能)のような他の「ループ」はありますか?

どうもありがとう...

4

2 に答える 2

2

ここに、円周率を計算するためのいくつかの式があります。

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

それらはすべて、他のプログラミング言語と同様に、PHPでも「実行可能」です。別の問題は、それらがどれほど速いか、またはそれらを実装するのがどれほど難しいかということです。

数式の収束が速くなったり遅くなったりする場合、それはプログラミングではなく数学の質問なので、私はあなたを助けることができません。経験則として、ネストされたループが少ないほど、アルゴリズムは高速になります(これは一般的なルールであり、絶対的な真実とは見なさないでください)。

とにかく、円周率の桁は特定の桁までわかっているので、それをファイルにコピーして、インデックスを付けてみませんか?それは非常に高速になります:)

同様の質問に対する以前の回答を確認 できます。PHPで円周率を設定された桁数に計算するにはどうすればよいですか。 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を使用して、「phpimplementationxxxxxxx」を検索する必要があります(xxxxxxは、検索するアルゴリズム名を表します)。

編集これは、phpでwhileループを使用したVietas式の実装です。

于 2010-06-16T11:36:41.640 に答える