正数取る関数または完全なプログラムの書き込みn
とを行うn
2外戻り又はプリント次いで(それはほぼすべての反復で正確な桁数を倍増IE)二次収束を有するπを計算するための反復アルゴリズムのステップを、N、正しい数字(含みます始まり3)。そのようなアルゴリズムの1つにGauss–Legendreアルゴリズムがありますが、必要に応じて別のアルゴリズムを自由に使用できます。
例:
入力1
→出力3.1
入力2
→出力3.141
入力5
→出力3.1415926535897932384626433832795
要件:
- アルゴリズムの各反復は、加算、減算、乗算、除算、累乗、およびルート(整数指数/度付き)などの一定数の基本演算を実行する必要があります。内部に1つ以上のループが含まれる場合。明確にするために、複素数を含む三角関数とべき乗は基本的な操作ではありません。
- アルゴリズムには、一定数の操作が必要な初期化ステップが含まれることが期待されています。
- アルゴリズムが2 n個の正しい数字を得るためにさらに1または2回の反復を必要とする場合、
n+2
ちょうどの代わりに最大反復を実行できますn
。 - 十分に明確ではなかった場合、正しい2 n桁の後、プログラムは他のもの(より正確な数字、間違った数字、シェークスピアの完全な作品など)を印刷してはなりません。
- プログラムは
n
、1〜20以上の値をサポートする必要があります。 - あなたのプログラムは
n
、現代のコンピューターで= 20に1時間以上かかるべきではありません(厳密な規則ではありませんが、合理的なものにしてください)。 - プログラムは、アルゴリズムの初期化と最初の反復の後、20を超える正確な数字を取得してはなりません。
- プログラムは、自由に利用可能なソフトウェアを使用してLinuxで実行可能である必要があります。
- ソースコードはASCII文字のみを使用する必要があります。
得点:
簡単なコードゴルフ、最短のコードが勝ちます。
勝者:
勝者はDigital Traumaです。私はついに彼のコードをn = 20で実行しました(冗談です)。特別賞は、非常に高速なpythonソリューションと異なるアルゴリズムでprimoに贈られます:)
~q^(n^2)
、そこの最初のセクションとそこ~q^2
の2番目のセクションによるものです。