【问题标题】:Trouble understanding the meaning of w1=w|w|无法理解 w1=w|w| 的含义
【发布时间】:2018-06-28 05:45:38
【问题描述】:

好吧,所以我有一种语言 L={w:|w|≥1,and w1=w|w|}。

w1=w|w|是 w 下标 1 和 w 下标 |w|。

我对 w1=w|w| 感到困惑方法。 |w|表示 w 的长度,但是如果我们像第一个单词一样将 w1 设置为 |w| 语言中的第一个词,那么它到底是什么?当我们说 |w|这里我们说的是哪个词的长度?

【问题讨论】:

  • 我猜这意味着 L 是长度至少为 1 且首尾字母相同的单词的语言,例如 daddruiddenied 但是不是dogddrcoddled
  • 如果你能附上这个定义的真实样子的图像(照片或其他东西),这可能是一个更好的问题。目前很难猜测。

标签: regex math regular-language dfa


【解决方案1】:

好的,所以我有一种语言 L={w:|w|≥1,并且 w1=w|w|}。 w1=w|w|是 w 下标 1 和 w 下标 |w|。

鉴于 1 和 |w|是下标,这意味着 L 是长度至少为一个 (|w| ≥ 1) 且首尾符号相同的单词 w 的语言。根据您的描述,似乎没有比这更可能的解释了。

这样的语言对于任何字母 A 都是规则的。假设 A = {a1, a2, ..., an} 是任何字母(所以 n ≥ 1)。您的语言的正则表达式由 (a1)((A*)(a1))* + (a2)((A*)(a2))* + ... + (an)((A*)(一个))*。 DFA 会有这个转换表:

q    s    q'
---  ---  ---

q0   a1   q1    // remember the first symbol
q0   a2   q2    // by moving to a unique state
...  ...  ...   // per symbol
q0   an   qn

q1   a1   q1    // q1 is accepting and q1' is not
q1   A\a1 q1'   // move between these and only
q1'  a1   q1    // accept if the last thing seen
q1'  A\a1 q1'   // is a1

q2   a2   q2    // q2 is accepting and q2' is not
q2   A\a2 q2'   // move between these and only
q2'  a2   q2    // accept if the last thing seen
q2   A\a2 q2'   // is a2

...

qn   an   qn    // qn is accepting and qn' is not
qn   A\an qn'   // move between these and only
qn'  an   qn    // accept if the last thing seen
qn'  A\an qn'   // is an

这个 DFA 有 2n + 1 个状态。我们可以使用 Myhill-Nerode 通过证明这些状态中的每一个代表不同的等价类并且不存在其他不同的等价类(在不可区分关系下)来论证它是最小的。

  1. 空字符串是可区分的,对应状态q0。
  2. 所有长度为 1 的字符串都是可区分的,并且对应于状态 q1 到 qn。
  3. 由两个不同符号组成的所有长度为 2 的字符串都是可区分的,并且对应于状态 q1' 到 qn'。
  4. 以相同符号开头和结尾的长度为 2 或更长的字符串与对应于状态 q1 到 qn 的长度为 1 的字符串无法区分。
  5. 以不同符号开头和结尾的长度为 3 或更长的字符串与对应于状态 q1' 到 qn' 的长度为 2 的字符串无法区分。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-05
    • 2015-02-16
    • 1970-01-01
    • 1970-01-01
    • 2022-01-25
    相关资源
    最近更新 更多