DFA接受偶数个0和1个奇数

时间:2016-12-12 15:59:01

标签: string dfa

我被问到的问题是"设计一个DFA接受所有字符串的集合,其中偶数个0和字母{0,1}上的奇数为1。"

我尝试过几种不同的方式,但我似乎无法做到这一点。这是我能提出http://imgur.com/a/tP6u5的最佳解决方案。忽略下面的图表,因为它试图出错了。我的DFA的问题在于,例如当我输入101100时,它不应该被接受,但它是。并且对于101011010,它应该被接受。不太清楚如何解决这个问题。

感谢您的帮助!

3 个答案:

答案 0 :(得分:0)

我首先考虑设计一个自动机:

  • 接受它应接受的最简单的字符串:"1"
  • 拒绝它应该拒绝的最简单的字符串:""

答案 1 :(得分:0)

以下是一些您可能会发现有用的提示。

  • 首先,设计一个DFA,它接受偶数个0的所有字符串集。接下来,设计一个单独的DFA,它接受奇数个1的所有字符串的集合。看看你是否可以使用这两种设计来激发设计的最终答案。
  • 尝试为州提供有意义的名称,而不是仅仅将它们称为A,B,C和D.例如,您可以拥有一个名为“偶数为0,奇数为1”的状态。
  • 如果你连续看到两个0,那么这两个0一起没有整体效果。这对你的状态图意味着什么?

答案 2 :(得分:0)

首先,您可以在DFA本身中实现所有状态。 这些是 : -甚至1甚至0 -偶数1和奇数0 -奇数1和奇数0 -奇数1甚至0

给它们一些相关的名称,以便于识别。 我们在这个问题中需要的是偶数0和奇数1。因此,第二个状态是最终状态。 还要记住,起初没有输入时(即输入为Epsilon)[我不知道如何写符号],字符串将具有偶数0和偶数1。那是第一种状态。

Here是最终的DFA图。