テープの 0 番目のセルの数字が埋められ、残りはすべてスクラッチ セルとして使用されている場合 (つまり、それらはすべて 0 から始まり、一時的なものです。それらがどうなろうと気にしません)、置き換えたいと思います。 0 または 1 を持つ 0 番目のセル。偶数の場合は 0、奇数の場合は 1。
基本的に、私がやりたいことは(C風の擬似コードで)です:
cell[0] = (cell[0] % 2)
次のように定義されたdivmod アルゴリズムが存在することを知っています。
n を保持する必要がない場合は、次のバリアントを使用します。
# >n d [->-[>+>>]>[+[-<+>]>+>>]<<<<<] # >0 d-n%d n%d n/d
ただし、X % 2 == X & 1
つまり X mod 2 は X の右端のビットなので、計算の複雑さの点で divmod はやり過ぎかもしれないと思います。
セルが偶数かどうかを調べるためのより良いアルゴリズム/手法はありますか?