Tape也叫“带”
![](https://img.haomeiwen.com/i9271641/3f343c86e5bf6ff9.png)
在状态转换的时候需要遵照一定的规则
Transition Function:(q,c;d,L/R,p)
q:代表图灵机或者读写头当前状态
c:代表当前读写头所对的单元格里的字符
前两项可以理解为是当前的状态、
d:在当前单元格里要改成的新的字符
L/R:读写头左移还是右移
p:图灵机新的状态
h代表停机状态
图灵机实例:
如何使用图灵机实现二进制非负整数加一
![](https://img.haomeiwen.com/i9271641/ed96fc42ac3fe991.png)
图灵机实现如下
![](https://img.haomeiwen.com/i9271641/a2e8a492eead5362.png)
第一行 认为图灵机是向左的状态 若为1则翻转为0
第二行 向左运动的时候碰到的第一个0 这个0置1 然后改变运动方向 向右运动
第三行是针对一位的情况
第四行是在右移过程中是0就继续右移 并不改变0
第五行是向右的过程中遇到的第一个#停机
那么为什么要回到原位置停机呢?
因为这个程序可能是一个算法的一部分
在调用这个程序之前可能会对这个程序的初始状态有一个严格的规范要求
它是非常有必要复位的
这种形式在很多模型中都有 甚至是软件开发合作中的一个准则
这个叫做一个规范 在后面更多的是体现在接口这种形式里
网友评论