Binary 哪种有限状态机捕获的二进制字符串的';01';和';10';?
我需要帮助设计一个有限状态机,它接受包含与模式Binary 哪种有限状态机捕获的二进制字符串的';01';和';10';?,binary,state-machine,Binary,State Machine,我需要帮助设计一个有限状态机,它接受包含与模式10出现次数一样多的模式01出现次数的二进制字符串 我有点难以理解到底哪些字符串应该被接受,哪些应该被拒绝 欢迎提供任何指导。问题的语言是什么? […]二进制字符串,包含的模式01的出现次数与模式10的出现次数相同。我有点难以理解到底哪些字符串应该被接受,哪些应该被拒绝 您的规范定义的语言实际上正是由 空字符串 以相同字符开头和结尾的所有字符串 接受空字符串,因为它包含任何一种模式的零次出现;容易的。 为了理解为什么所有非空接受字符串必须以相同的
10
出现次数一样多的模式01
出现次数的二进制字符串
我有点难以理解到底哪些字符串应该被接受,哪些应该被拒绝
欢迎提供任何指导。问题的语言是什么?
[…]二进制字符串,包含的模式01
的出现次数与模式10
的出现次数相同。我有点难以理解到底哪些字符串应该被接受,哪些应该被拒绝
您的规范定义的语言实际上正是由
- 空字符串
- 以相同字符开头和结尾的所有字符串
以突出显示出现的--
模式,以及01
以突出显示**
模式的出现10
10001010
此字符串包含
- 2次出现
,以及01
- 出现3次
10
10001010
** ****
----
11001111
**--
因此,它不被接受。请注意,它不是以相同的字符开始和结束的
字符串11001111
此字符串包含
- 1出现
,以及01
- 出现1次
10
10001010
** ****
----
11001111
**--
因此,它被接受。请注意,它以相同的字符(1
)开始和结束
你明白了
描述所讨论语言的有限状态机
我需要帮助设计有限状态机[…]
以下是一个FSM,它描述了所讨论的语言:
为了让自己相信它确实描述了这里感兴趣的语言,你可以考虑
- s0作为仅接受空字符串的状态李>
- s1表示仅接受以
开头和结尾的字符串的状态李>0
- s2表示下一个字符必须为
才能被接受的输入字符串的状态李>0
- s3表示只接受以
开头和结尾的字符串的状态李>1
- s4表示下一个字符必须是输入字符串的
才能被接受的状态1
\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{
自动机,
定位
}
\开始{document}
\开始{tikzpicture}[
节点距离=2cm,
在网格上,
汽车,
比例=.8,
变换形状,
]
\节点[状态,初始,接受](s0){$s_0$};
\节点[状态,接受](s1)[右上方=s0]{$s_1$};
\节点[状态](s2)[right=of s1]{$s_2$};
\节点[状态,接受](s3)[右下=s0]{$s_3$};
\节点[状态](s4)[右=s3]{$s_4$};
\路径[->](s0)边节点{0}(s1)
(s1)边[向左弯曲]节点{1}(s2)
边[循环上方]节点{0}()
(s2)边[循环右]节点{1}()
边[向左弯曲]节点{0}(s1);
\路径[->](s0)边缘节点[swap]{1}(s3)
(s3)边[bend right]节点[swap]{0}(s4)
边[下面的循环]节点{1}()
(s4)边[循环右]节点{0}()
边[bend right]节点[swap]{1}(s3);
\结束{tikzpicture}
\结束{document}
您可能需要用描述您语言的语言更精确地回答问题,因为在我看来,这听起来很像创建一个FSM的经典技巧问题,该FSM可以识别L={0^n1^n:n是一个正整数},或者简单地说,某个模式后跟相同数字的不同模式
这不能用确定性或非确定性有限状态机来完成,因为要计算N,需要一个无限(或非有限)状态机
语法可以解决这个问题。
其内容如下:
S->01S10
S->(epsilon)(换句话说,消失)这听起来很像创建一个FSM的经典技巧问题,它识别L={0^n1^n:n是一个正整数}[…]。但事实并非如此。如我的回答所示,OP的语言是常规语言。我同意您的机器确实接受所编写的语言。最初的描述令人怀疑地看起来像是一种非规则语言,经过重新编写,使其具有规则性。。。但也许不是。注意你的语法太严格了。例如,它不能生成诸如
101
、1111
等字符串。