【发布时间】:2015-03-22 23:27:07
【问题描述】:
我正在尝试编写一组复制一组刻度的规则,无论原始集旁边的空格有多长,我都有一个这样做的循环,但是它不会停止并继续前进并破坏复制的项目.
http://i.imgur.com/8cpaYkN.png
在图片的截断下应该是 5 0 -> 1 Tick
这是基于在以下位置找到的模型:http://en.wikipedia.org/wiki/Turing_machine_examples#A_copy_subroutine
有什么见解吗?
编辑:当它到达两个数字系列之间的中间零时它应该停止,但我的继续。
编辑:
所以我的程序检查一个 1,如果它找到它,它会将它变成零并跳过后面的一个直到它到达一个零,它会跳过零和下面的一个(一开始都没有)并将第一个 0 更改为 1,然后通过跳过一和零返回,然后跳过一直到找到第一个零(已更改的零)将其更改为一,然后程序循环。它应该在到达分隔两个数字的中心零时停止。
是这样的。
State 1, 0 -> state 1, 0
State 1, 1 -> state 2, 1 [changes the first 1 to a 0]
state 2, 1 -> state 2, 1
state 2, 0 -> state 3, 0
state 3, 1 -> state 3, 1
state 3, 0 -> state 4, 1 (right) (goes back) [changes the first 0 to a 1]
state 4, 1 -> state 4, 1 (right)
state 4, 0 -> state 5, 0 (right)
state 5, 1 -> state 5, 1 (right)
state 5, 0 -> state 1, 1 (left) (loops) [changes the first changed 1 back]
如果我对任何序列执行此操作,它会复制它们,但是,它不会停止循环,它会在完成后继续并中断复制。
所以如果我输入:
0 0 1 1 1 0 0 0 0 0 0.....
规则将执行以下操作:
0 0 1 1 1 0 0 0 0 0 0.....
0 0 0 1 1 0 1 0 0 0 0.....
0 0 1 0 1 0 1 1 0 0 0.....
0 0 1 1 0 0 1 1 1 0 0.....
0 0 1 1 1 0 1 1 1 0 0.....
(它现在应该停止但它继续运行,测试新复制的输入。)
【问题讨论】:
-
外部站点上的 .png 不是共享程序的好格式。您能否在问题中总结或以其他方式包含该程序,使其独立?
-
我这样做是为了让人们能够更好地理解它,但请稍等,我将编辑帖子
-
您需要包括头部移动的方向。
-
您对您机器的描述(“就是这样”)不清楚;它缺少一些左/右指示器,并且您忽略了状态 0 中的 HALT 操作。
-
如果它不向右就向左,对不起,忘了把它放进去
标签: turing-machines