最も有名で影響力のある難解な言語の1つであるbrainfuckを知っているか、少なくとも聞いたことはあります。最近ではほとんどの実装で無限テープが使用されていますが、UrbanMüllerの元のコンパイラには30000セルのテープがありました。少し知られている事実*は、テープの最後に実際に特別な値があるということです。これは、典型的なブレインファックプログラムではほとんど対話されません。
この値を29999 >
sとa .
で印刷できますが、brainfuckは短く簡潔な解決策で知られているため、目的はこの値を最小文字数で印刷することです。
*フィクション
ルール:
- Brainfuck命令の復習:
+
/-
:現在のセルをインクリメント/デクリメントし、255がインクリメントされると255から0に折り返し、その逆も同様<
/>
:テープ上でポインターを左右に移動します.
:現在のセルの値を出力します。[
:]
セルの値が0の場合、対応するものにジャンプします]
:[
セルの値が0でない場合、対応するものにジャンプします
- この場合
,
(元のコンパイラーはEOFでセルを変更せずに残すため)(入力の取得)は何も行いません。このプログラムは入力を受け取りません。 - テープは最初はすべて0で満たされていますが、セル30000には不明な値が含まれています。
- ポインターはセル1から始まり、セル30000で終了し、印刷されます。
- 1の左側と30000の右側のセルには未定義の動作があるため、ソリューションはこれらのセルにアクセスしないでください。
- 30000の値
はあなたがゼロ以外のセルは動作しませんヒットするまで、そう単純にループし、0かもしれません。 - セル30000の値のみを印刷する必要があります
- 最短のソリューションが勝ちです!
- タイブレーカーは、より効率的なプログラム(最小ステップで実行)であり、その後に最短の送信時間が続きます。
ヒント: Esolanging Fruitでは、https : //copy.sh/brainfuckを使用してコードをテストすることをお勧めします。仕様はこの課題で説明されているabort
とおりであり、範囲外になった場合にプログラムが停止するようにオプションを選択できます。
.
。私の勝ち。