Piは無理数です。つまり、その10進表現は終了したり繰り返されたりすることはありません。
Piは小数点以下41桁(40桁)に切り捨てられ3.1415926535897932384626433832795028841971
ます。
小数点を無視し、重複を避けるために数字を正の整数のシーケンスとしてリストすると、3 1 4 15 9 2 6 5 35 8 97 93 23 84 62 64 33 83 27 950 28 841 971
(OEIS A064809)が得られます。
(すでに発生したためでは15
なく、シーケンスに表示される通知。
また、正でないため発生しないことに注意してください。最初のゼロが含まれています。)1 5
1
0
950
最初の著作数を作成するには、このシーケンスを使用してPiの数字にインデックスを付けます(最初の数字は3、2番目の数字は1など)。
したがって、最初の著作権侵害番号の1桁目はPiの3桁目
、2桁目はPiの1桁目
、3桁目はPiの4桁目、4桁目はPi
の15桁目など
です。
Piを模倣するために、最初の桁の後に小数点が追加されます。
したがって、41桁の最初の著作権侵害番号は4.3195195867462520687356193644029372991880
です。
(30桁目では、Piの974桁目まで行かなければならなかったことに注意してください。)
2番目の著作権数を作成するには、Piの代わりに最初の著作権数を使用してプロセスを繰り返します。(Pi自体は0番目の海賊番号と呼ばれる場合があります。)したがって、新しいシーケンスはで4 3 1 9 5 19 58 ...
あり、最初の海賊番号は2番目を生成するためにインデックス付けされます9.14858...
。
同様の方法で追加の著作権侵害番号が作成され、それぞれ前の番号から生成されます。
チャレンジ
あなたの仕事は、2つの整数を取り、可能な限り最短のプログラムを作成することです。N
そしてD
、10進N
数に切り捨てられたthの実数を出力しD
ます。
D
は常に正ですがN
、負ではなくD
、Piの数字N
は0の
ときに出力される必要がありますD
。1の場合、小数点が存在するかどうかは関係ありません。
入力はstdinまたはコマンドラインから取得し、出力はstdout(または言語の最も近い代替)に送信する必要があります。
プログラムは2 16以下のすべての入力値で動作するはずですがN
、タイムリーまたは効率的である必要はありません。D
(違法コピー数は他のベースで終了しますが、このチャレンジのすべてはベース10で行われます。)
N=1
、D=13393
たとえば、あなたは、PIの第三千百万桁必要があるだろう