小数点の倍精度表現では、小数点以下15桁の精度しか保証できないため、piは次のように近似されます。
3.141592653589793
あなたは桁があることがわかります3
の位置にあり1, 10, 16
、数字が1
位置している2, 4
など
チャレンジ
あなたの仕事は、0から1の間のランダムな倍数を作成し、その数の値をpiの値にマッピングするプログラムまたは関数を作成することです。これを行うには、数字がpiにある位置の乱数に異なる数字を配置します。piに数字が見つからない場合はスキップし、乱数に含まれないpiの数字はすべてで表されますx
。各値は、左から1回だけ使用できます。
いくつかの例はおそらくこれをより明確にするでしょう。次の例では、最初の数値はpi、2番目の数値は乱数、最後の数値は目的の出力です。
3.141592653589793
0.111111111111111
x.1x1xxxxxxxxxxxx
3.141592653589793
0.531000000000000
3.1xx5xxxxxxxxxxx
3.141592653589793
0.123456789123456
3.141592653x8x7xx
3.141592653589793
0.967552381459391
3.14159265358979x
ルール:
- 関数は入力を受け付けません(例外の可能性については箇条書き3で説明しています)
- 出力は、オプションの改行を含む出力文字列のみで構成されます(単一の後続スペースも受け入れられます)
- プログラムに組み込みのPi値やRNGがない場合は、Piをハードコーディングし、入力として乱数を使用できます。乱数をハードコーディングしたり、Piを入力として使用したりすることはできません。
- Piのハードコードされた値と15桁のランダムな数字(
0.
0から1の間になることがわかっているのでスキップできます)は、バイトカウントに含まれます。 - 言語に必要な精度がない場合は、次の制限の下で精度を下げることができます
- Piの桁は、持っている精度まで正確でなければなりません
- 正確であることが保証されている以上の値を出力することはできません。つまり、精度が8桁の正確な小数しか許可しない場合は15桁を出力できません。
- プログラムが8桁しかサポートしていない場合でも、ハードコードされたPiの値は16バイトとしてカウントされます(小数点は必要ありません)。
- 乱数の入力値は15バイトとしてカウントされます(必要ありません
0.
。これは、精度の低い言語に不当な利点がないためです。 - プログラムは5桁の精度をサポートする必要があります(少なくとも)。
- 編集:答えを検証するには:何らかの方法で乱数を出力する必要がありますが、この操作をバイトカウントに含める必要はありません。たとえば、
print r
スクリプトの最後にaを挿入できる場合、その部分はスコアを増加させません。 - 別の必要な操作の一部である場合、バイトを減算することはできません。つまり、コードがの場合、
print pi, r
減算することしかできません, r
。 - :あなたは、コード内の部品にいくつかの場所を挿入する必要がある場合は、プリント乱数やコメントなどでないものという両方のバージョン(1を含めてください
_p
と_oNo
。乱数を印刷するために必要とされるが、_p
XXXを行い、_oNo
いYYY。_p
および_oNo
バイト数には含まれません。
バイト単位の最短コードが勝ちます。
リーダーボード
この投稿の下部にあるスタックスニペットは、a)言語ごとの最短ソリューションのリストとして、b)全体的なリーダーボードとして、回答からカタログを生成します。
回答が表示されるようにするには、次のマークダウンテンプレートを使用して、見出しから回答を開始してください。
## Language Name, N bytes
N
提出物のサイズはどこですか。スコアを改善する場合、古いスコアを打つことで見出しに残すことができます。例えば:
## Ruby, <s>104</s> <s>101</s> 96 bytes
ヘッダーに複数の数字を含める場合(たとえば、スコアが2つのファイルの合計であるか、インタープリターフラグペナルティーを個別にリストする場合)、実際のスコアがヘッダーの最後の数字であることを確認します。
## Perl, 43 + 2 (-p flag) = 45 bytes
言語名をリンクにして、スニペットに表示することもできます。
## [><>](http://esolangs.org/wiki/Fish), 121 bytes
0 < random < 1
またはを意味し0 <= random <= 1
ますか?