如何构建这个图灵机?

Posted

技术标签:

【中文标题】如何构建这个图灵机?【英文标题】:How to construct this turing machine? 【发布时间】:2018-01-28 11:30:57 【问题描述】:

我们如何构造 TM 使其接受(仅给出描述):

a + b = c

一个。 b = c

输入的格式为 a#b#c。

a,b 和 c 属于 0,1* 并且是正二进制无符号整数。

我知道如果输入是一元表示我们可以构造 TM,但是如果它是二元表示怎么解决呢?

【问题讨论】:

此类问题适合cs.stackexchange.com 【参考方案1】:

嗯,二进制加法和乘法比一元情况要复杂一些,但并不难。补充:

    将两个最低位相加。如果和为零或一,这是结果的最低位。如果和为 2,则最低位为零,并且有进位。 转到下一个最低位。将两者和可能的进位相加。如果和为零或一,这是结果的当前位。如果和为 2,则当前位为零并且您有进位。如果和为 3,则当前位为 1,并且您有进位。 重复 2 直到处理完所有位。

对于乘法,您可以使用this one 之类的方法。如果您真的需要详细进行,这将是一些在 TM 上编程的工作。

【讨论】:

以上是关于如何构建这个图灵机?的主要内容,如果未能解决你的问题,请参考以下文章

通用图灵机问题

图灵机上的荷兰国旗

图灵机冯诺依曼结构哈佛结构

在 Erlang 中实现图灵机

计算机组成原理系列 程序如何执行的(上)

Bristol的第7篇密码学