【问题标题】:Find out which is a regular language找出哪种是常规语言
【发布时间】:2016-09-17 16:05:08
【问题描述】:

我的论点/答案是,如果 y 是正则集,则退出一个接受 y 的 DFA。在 L1 中存在 y=x^n 的条件,即 x 将属于 L1,因为 y 被 DFA 接受。 x^n 也是如此,x 也是如此,所以 L1 是规则的。现在 L2 --> 这里的条件是 x=y^n。这里 y 被 DFA 接受,所以 y^n 等于 x,所以 x 可以被 DFA 接受。这使得 L1,L2 都正常

我的论点正确吗?

【问题讨论】:

  • 您的回答有问题,因为y 不是集合。
  • 我不同意你的论点。如果有一个 DFA 接受 x^n,那并不意味着它也必须接受 x。

标签: regular-language computation-theory dfa tableofcontents


【解决方案1】:

这个问题似乎提出得不好。例如,如果我们取 A = {a},那么 L1 是语言 {a},L2 是语言 a*,两者都是正则的。如果我们选择 A = a*b,那么 L1 = a *b(这是常规的)和 L2 = { (anb)m | m, n ≥ 0 },这是不规则的(使用抽水引理)。换句话说,答案取决于 A 的选择。

【讨论】:

  • 如果 A = a* b 那么 L2 = (ab) 这当然是常规的。详情见我的回答。
  • @chazisop 你确定吗?直观地说,L_2 是您通过在 A 中选择单个字符串并多次复制它们而获得的语言。因此,L_2 中不会有 aabab,因为 A 中没有固定字符串,您可以选择并复制两次以获得 aabab。
  • 对不起,上面的评论格式不正确。在示例中 L2 应该是 (a * b) * 。 n 和 y 不限于某些特定的选择,即只是用于指定特定 x 必须满足的条件的设置构建器符号。如果你看一下定义,它会说:x 在 L2 中,如果在 A 中存在字符串 y 和非负整数 n,使得 x=y^n。因此,对于 A 中的每个字符串 y 和每个非负整数 n,y^n 都在 L2 中。但这正是 A*。
  • @chazisop (a* b)* 包含字符串 abaab,它不在 L2 中。