【发布时间】:2014-12-12 13:16:00
【问题描述】:
我是 Automata 概念的新手,并且在一些论文中我发现了 {0,1}*。
和
(0+1)*一样吗我们也可以从
(0+1)*生成101我们可以从
{0,1}*生成101
如果 1) 答案是否定的
请任何人帮我解决这个困惑..
【问题讨论】:
-
你能解释一下为什么 1 得到 NO @WhileTrueSleep
我是 Automata 概念的新手,并且在一些论文中我发现了 {0,1}*。
和(0+1)*一样吗
我们也可以从(0+1)*生成101
我们可以从{0,1}*生成101
如果 1) 答案是否定的
请任何人帮我解决这个困惑..
【问题讨论】:
如果它们都在计算机科学论文和计算理论书籍中找到,那么是的,它们很可能是相同的。
在符号{0,1}*中,集合符号{0,1}用于表示“0或1”。
另外,+ 也用于表示交替(例如JFLAP)。所以(0+1)也可以表示“0或1”。
| 也用于在理论计算机科学上下文中表示替换 (0|1)。这也是许多正则表达式引擎中的交替语法。
Kleene 星 * 在理论正则表达式(书籍、论文)和实际正则表达式库中具有相同的符号,表示前面原子的重复 0 次或多次。
由于它们的意思是“(0或1)重复0次或多次”,因此它们都可以生成语言101。
正如@Bergi 在评论中提到的,当您看到在同一本书/论文中使用这两种语法时,您应该退后一步。例如,@paarandika 指出 + 在书/纸中实际上可以表示“重复一次或多次”,如果它是上标的话。
【讨论】:
(0|1) 是正则表达式库中交替的常用语法。不知道是不是用在纸上,但如果你看到的话,很可能它也和其他2个意思一样。