【发布时间】:2020-03-02 19:39:48
【问题描述】:
我正试图找出以下作业,我可以使用你的帮助,因为我被卡住了。我的目标不是直接回答(但我不介意有人能够设计整台机器)。我更感兴趣的是赞成/反对我的想法并指出正确的方向。
任务:
构造一个接受1^k, where k=n^2 n is integer 格式单词的图灵机。
基本上它接受这些词,您可以将它们排列成正方形。
例如,前三个可接受的词是:
1Δ; 1111Δ; 111111111Δ;
哪些可以排列成这样的正方形:
1
11
11
111
111
111
我的想法:
如果我只得到一次“1”,它应该被接受。
Tape: 1Δ; k=1, n=1 and k=n^2
所以如果磁带上没有其他字符,我假设在一个“1”之后我处于“STOP”状态(我们称之为状态 A)。
下一个可接受的词是下一个正方形,我们可以这样写成公式:
(n+1)^2 That equals: n^2 + 2*n + 1
两个连续方块的差是(2*n + 1)
所以如果我的假设是正确的,如果我处于状态 A 我需要以某种方式检查我是否在磁带上得到(2*n + 1) 乘以“1”,如果这让我回到状态 A,它将被正确接受。其他任何事情都应该拒绝。
我面临的问题是,我不知道如何计算磁带上的(2*n + 1) 乘以“1”。
我也应该只用一盘磁带找到解决方案。提示是它应该以形式结束
111#111111111Δ,其中左侧的和等于“k”,右侧等于“n”。可悲的是,这个提示根本没有帮助我。我会说这让我的情况变得更糟。
【问题讨论】:
标签: automata finite-automata computation-theory turing-machines