无法理解w1 = w | w |的含义

时间:2018-01-19 02:46:08

标签: regex math regular-language dfa

好吧所以我的语言L = {w:| w |≥1,w1 = w | w |}。

W1 = W | W |是w下标1和w下标| w |。

我对什么w1 = w | w |感到困惑手段。 | W |表示w的长度,但如果我们将w1设置为第一个单词中的w1 | w |语言中的单词,那究竟是什么?当我们说| w |这里我们谈论的是哪个词的长度?

1 个答案:

答案 0 :(得分:0)

  

好吧所以我的语言L = {w:| w |≥1,而w1 = w | w |}。 W1 = W | W |是w下标1和w下标| w |。

鉴于1和| w |是下标,这意味着L是长度至少为1(| 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. 所有长度 - 一个字符串是可区分的并且对应于状态q1到qn。
  3. 所有长度 - 由两个不同符号组成的两个字符串是可区分的并且对应于状态q1和#39;通过qn'。
  4. 以相同符号开头和结尾的长度为2或更长的字符串与长度 - 一个对应于状态q1到qn的字符串无法区分。
  5. 以不同符号开头和结尾的长度为3或更长的字符串与对应于状态q1'的长度2字符串无法区分。通过qn'。