鉴于磁带的第 0 个单元格中的一个数字已填充,其余的都只是用作暂存单元格(即它们都从 0 开始并且是临时的——我不在乎它们会发生什么),我想替换第 0 个带有 0 或 1 的单元格。如果是偶数,则为 0,如果是奇数,则为 1。
基本上,我想做的是(在 C-esque 伪代码中):
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 在计算复杂性方面可能是矫枉过正的。
有没有更好的算法/技术来确定细胞是否均匀?