【问题标题】:What is the regular languages that are equivalent to the given regular language: (0 + 1)*1(0 + 1)*与给定常规语言等效的常规语言是什么:(0 + 1)*1(0 + 1)*
【发布时间】:2021-03-24 12:06:54
【问题描述】:

我正在学习自动机理论。这个问题我答错了三遍,不知道正确答案。请帮帮我。

目标语言是(0+1)*1(0+1)*。选择是:

A) (01+11)*(0+1)*
B) (0+1)*(10+11+1)(0+1)*
C) (1+0)*1(1+0)*
D) (0+1)*(0+1)(0+1)*

如果有不止一种等效语言,则允许多选。

【问题讨论】:

标签: regular-language


【解决方案1】:

答案是 B&C:

给定的正则表达式要求每个字符串至少有一个 1,并且可以在 1 之前或之后任意组合数字。因此,排除了第一个和第四个选项,因为它们都接受字符串“0”。第二个选项是等效的,因为中间项“(10 + 11 + 1)”保证字符串中有一个 1,实际上这个表达式可以用“1”替换而不影响语言。第三个选项是等价的,因为“+”是可交换的,“(0 + 1)”可以替换为“(1 + 0)”。

【讨论】:

    【解决方案2】:

    考虑你的选择,或者将它们分解成一个看起来像你的目标的形式,或者找到一个用一种语言但不是另一种语言的词:

    目标:(0+1)*1(0+1)*,这是{0,1} 上至少包含一个1 的所有单词的语言。

    A) (01+11)*(0+1)*,这不包括至少一个 1。例如,空字符串在 A 中,但不在目标中。

    B) (0+1)*(10+11+1)(0+1)*,专门查看10+11+1 部分,可以将其分解为1(0+1+ε)(0+1+ε)(0+1)*(0+1)* 没有区别。

    C) (1+0)*1(1+0)*,这只是将0+1 替换为1+0 的目标。联合运算+ 是可交换的。

    D) (0+1)*(0+1)(0+1)*,该语言包含不在目标中的单词0

    【讨论】:

      猜你喜欢
      • 2015-06-11
      • 2011-10-06
      • 2011-06-23
      • 2013-09-13
      • 2022-06-28
      • 1970-01-01
      • 2016-08-03
      • 2020-10-16
      • 1970-01-01
      相关资源
      最近更新 更多