チャレンジ
プラスチック製の番号は、多くの興味深い数学的な性質で、黄金比に関連した数です。そのため、数を計算するために使用できる多くのアプローチがあります。
この課題の目的で番号を正確に指定するために、次の定義を使用します(ただし、同等の定義は多数ありますが、同じ番号になる限り、任意の定義を使用できます)。
プラスチック数は実数であり、ρようρ ³= ρ +1。
あなたの課題は、入力として整数xを取り(x > 1で)、出力としてρの近似値を生成するプログラムまたは関数を作成し、xの値が大きくなるほど出力がρに近づくことです(せいぜい有限の例外を除いて、この目的のために「近い」と同じ値にとどまります)、任意の正の数δに対して、ρのδ内にある出力を生成するプログラムへの入力xがあります。
明確化
- 本質的に文字列を出力するメソッド(標準出力ストリームなど)を介して出力する場合、出力を10進数(たとえば
1.3247179572
)でフォーマットするか、2つの整数の/
間に文字を入れた比率で出力をフォーマットできます。 - プログラミング言語内で値として出力する場合(関数から返される場合など)は、固定小数点、浮動小数点、または有理型でなければなりません。(特に、2つの整数の比率を保持するためだけに使用されない限り、数値を記号的に格納するデータ型は使用できません。したがって、Mathematicaまたは同様の言語を使用している場合は、追加の実際に出力の数字を生成するコード。)
- あなたの答えは、整数を任意に大きくすることができ、メモリ(スタックを含む)は無制限である、あなたの言語の仮想的な変形で機能しなければなりません。言語の浮動小数点演算がarbitrarily意的に正確であると仮定することはできませんが、代わりに実際の正確さを使用する必要があります(つまり、浮動小数点数の出力は、浮動小数点数の精度が可能な言語でのみ可能になることを意味します)実行時に制御されます)。
- xは、任意の意味を持ちます(値を大きくすると、より正確な出力が得られます)。ほとんどのサブミッションでは、生成する出力の桁数、またはプログラムがプラスチック数に収束するために使用するアルゴリズムの反復数を制御しますが、他の意味も受け入れられると思います。
テストケース
プラスチック番号の最初の数桁は次のとおりです。
1.32471795724474602596090885
OEISではさらに多くの数字を使用できます。
勝利条件
code-golfの場合と同様に、バイト単位で測定した方が短い方が優れています。ただし、既存の回答に何か(たとえば、異なる言語やアルゴリズム)を追加する限り、勝たなかったとしても、回答を投稿してください。