图灵机添加两个数字

时间:2009-12-21 20:56:41

标签: turing-machines

如何创建图灵机,它将计算用#分隔的两个二进制数字的总和,例如。 111#101B,其中B是空白?结果可以写在磁带的末尾。

2 个答案:

答案 0 :(得分:11)

  1. 编写图灵机将二进制数转换为一元(保持它们之间的空白)。
  2. 写一台图灵机,用1替换空白,然后从末尾剪下一个数字。
  3. 编写图灵机以将一元数转换为二进制数。
  4. 将这三台机器连在一起。

答案 1 :(得分:1)

假设输入a#(1)b 转换为a#(1)b#(2)c#(3)空白

空白将填充总和。将“ a”的LSB设为2。将LSB的2个情况进一步除以b。 “ c”是一开始为0的进位位。对这四种情况中的每一种分别设置2个情况,并在途中更新进位。根据'c'是0还是1选择路径。

图片显示了一个粗略的草图。

enter image description here

最终结果将是原始总和的反转值。您再次反转。用一粒盐拍张照片。这只是一个粗略的草图。不遵循术语。