【发布时间】:2017-08-22 14:06:24
【问题描述】:
如何构建一个接受语言 L = {0i0j0k/ i
【问题讨论】:
标签: state-machine turing-machines
如何构建一个接受语言 L = {0i0j0k/ i
【问题讨论】:
标签: state-machine turing-machines
我认为这是指语言0^i 0^j 0^k | i < j < k。至少,我没有看到任何其他明显的解释。
通过取i = 0、j = 1和k = 2'得到该语言中最短的字符串;这会产生该语言中的字符串000。
另请注意,所有超过三个零的字符串也在该语言中,因为我们可以采用 i = 0、j = 1 和 k = n - 1(对于 n >= 3)。
因此我们的语言等于0^n | n >= 3。这种语言是正规的。该语言的最小 DFA 如下:
Q s Q'
q0 0 q1
q1 0 q2
q2 0 q3
q3 0 q3
这里,q3 是唯一的接受状态,q0 是初始状态。这假设输入字母仅包含0;如果它包含更多内容,您将需要一个死状态和额外的产品。
将 DFA 翻译为 TM 留作练习。
【讨论】: