在E = {a,b}上查找语言的正则表达式

时间:2013-10-06 22:11:39

标签: regex computer-science regular-language dfa nfa

L = w:(na(w)-nb(w))mod 3 / = 0

如何查找此语言的正则表达式?

据我所知,这意味着As的数量减去B的数量不能是3的倍数。所以a - b不能是3,6,9,12等。

但我仍然无法将其置于正则表达式中。我尝试先把它变成DFA或NFA,但我也做不到。

感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

我会通过将{a,b}上的单词列表分为三种情况来解决这个问题:

  • L1 = w:(na(w)-nb(w))mod 3 = 1
  • L2 = w:(na(w)-nb(w))mod 3 = 2
  • L3 = w:(na(w)-nb(w))mod 3 = 3

L然后是L1 U L2,您应该能够创建与L1,L2和L3相关的表达式。然后,您应该能够消除事物并最终在{a,b}上使用正则表达式。

相关问题