我正在尝试在{a,b}
上找到以下语言的正则表达式L = {w:(na(w)+ nb(w))mod 3< 2}
我想把它分成:
L1 = {w:(na(w)+ nb(w))mod 3 = 0}
L2 = {w:(na(w)+ nb(w))mod 3 = 1}
然后使用L1 Union L2来解决。
我想我已经通过使用解决了na(w)mod 3 = 0 (b * ab * ab * ab *)*
然而,我不确定如何处理na(w)+ na(b)和mod 3的2个条件< 2合一单一正则表达式
答案 0 :(得分:1)
假设na(w)代表w中出现的数量,你的字母表是{a,b}的事实意味着na(w)+ nb(w)是w的长度。
所以问题是接受长度为3k或3k + 1的{a,b}的字符串语言。这种语言的正则表达式是
((a|b)(a|b)(a|b))*(a|b|empty)