{w |在w的每个奇数位置都是1}

时间:2016-03-06 12:43:08

标签: computation-theory

任务是通过字母{0,1}为这种语言构建DFA。

我构建了一个由4个状态组成的DFA,它不接受空字。但是,在答案中,他们给出了接受它的3州DFA。

为什么我的DFA会接受一个空单词,如果在空单词中奇数位置没有1,这意味着它不在语言中?

2 个答案:

答案 0 :(得分:2)

唯一的要求是奇数位置的任何符号必须为1。不需要特定数量的符号,特别是不能存在至少一个符号。

因此,具有初始状态的DFA 0导致拒绝状态,而1导致第二个状态接受任一符号并返回到开头将是可接受的答案,并且会接受空字符串。这将是一个三态机器:

Diagram of suggested DFA

答案 1 :(得分:0)

我认为你很困惑,为什么空字符串应该是所提到的集合的一部分。

让我们来看看另一个例子。考虑你有一组所有可能的字符串,每个字符都等于0.这样的字符串将是0,00,000,000,等等。空字符串*怎么样?它实际上也属于这个集合。空字符串不违反集合的定义。

将此示例与您的示例进行比较。你应该检查字符串的每个奇怪位置,如果你发现除了1以外的任何东西,你应该说它不是你设置的元素。关于字符串是否应该有一个奇怪的位置进行检查,没有任何说法。