|>I|
オンラインでお試しください!
逆にしてみてください!
これは、nullバイトを含まない入力に対して機能します。
説明
うわー、私はこれらを手書きで書くようになりました...
完全なプログラムは|>I|I<|
です。
| Reverse the entire stack down to the EOF marker -1 (since there are no zeros in the input).
> Move one stack over to the right (which only contains zeros).
I Does nothing on zero.
| Does nothing on zero.
I Does nothing on zero.
< Move back to the initial stack.
| Reverse the input once more.
前の課題の解決策と同様に、centerコマンド|
は何もしないため、プログラム全体もそうです。
その場合、逆のプログラムは|I>|<I|
です。
| Reverse the entire stack down to the EOF marker -1 (since there are no zeros in the input).
I Move the -1 one stack to the left and turn it into a +1.
> Move back to the initial stack.
| Reverse it again, but this time without the EOF marker.
< Move back to the left.
I Move the +1 back onto the initial stack and turn it into a -1 again.
| Reverse the entire stack. We now have the -1 as an EOF marker again at the bottom
and the rest of the stack has been reversed three times, i.e. one net reversal.
おもしろいことに、このリバースプログラムを使用しても、今回-m
はまだ有効なソリューションが得られないため、省略することで発生する追加バイト-m
は、コードのミラーリングから得られるバイトだけです。
|I<|>I|
オンラインでお試しください!
逆にしてみてください!
説明
このプログラムの逆バージョンは|I>|<I|
、上記と同じなので、無視できます。ただし、非反転バージョンは異なります。以来<>
、今、他の道を指し示すプログラムが猫になるように、中央のコマンドは、何もしない終わります:
| Reverse the entire stack down to the EOF marker -1 (since there are no zeros in the input).
I Move the -1 one stack to the left and turn it into a +1.
< Move another stack to the left, which contains only zeros.
| Does nothing on zero.
したがって、>I|
プログラムの前半を正確に元に戻します。