2009-12-21 79 views
1

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

+0

这是功课吗? (只是问) – John 2009-12-21 20:58:42

+1

我们不会给你答案的功课。您至少需要证明您在遇到问题时尝试过并提出具体问题。 – 2009-12-21 21:02:01

+0

好的,我明白了。我只是想在下面的答案中提供一些线索。谢谢:) – szaman 2009-12-28 09:14:11

回答

11
  1. 写一个图灵机将两个二进制数转换为一元(保持它们之间的空白)。
  2. 写一个图灵机,用1代替空白,并从尾部切下一个数字。
  3. 编写一个图灵机将一个一元数转换为二进制数。
  4. 将这三台机器链接在一起。
+1

你,先生,是一个聪明人。 +1 – dmckee 2009-12-21 21:05:09

+1

我讨厌打死灵巫师,但是当你为谷歌添加“二进制数字图灵机线性时间”时会出现这种情况。并且_no_这不是一个有效的解决方案,因为它需要指数级的步骤(以原始输入大小)。 – Raphael 2010-12-12 14:35:06

-11

你没有学过如何在小学增加数字。只是在这里实施相同的事情。用天真的方法,这是二次时间。

进一步的加速是可能的。