整除查找一個正則表達式表示由{
a,
b
},其中的a
數目的是除盡6和b
數串可以被8
整除。RE:一的數量是整除6和b的數量是由8
我試圖創建一個DFA,其接受這樣的字符串。我的想法是使用所有餘下的mod 6和mod 8,總共剩餘48個餘數。因此,在DFA每個狀態是一對(r, s)
其中r
從0變化至6和s
從0變化至7開始狀態(以及接受狀態)(0, 0)
和由我們可以很容易地通過注意給轉換到狀態,如果我們輸入"a"
狀態(r, s)
轉變到(r + 1, s)
和輸入"b"
它轉換到狀態(r, s + 1)
。
但是實在是太難了與48個狀態的DFA工作,我不知道這是否可以通過手動使用DFA最小化算法最小化。
我真的不知道如何才能得到表示這樣的字符串的正則表達式。
不,這不能最小化,它的正則表達式將是非常漫長和複雜的,即使你試圖找到的正則表達式「B」/2和「A」/2將是非常複雜的[閱讀](HTTP: //stackoverflow.com/questions/17420332/need-regular-expression-for-finite-automata-even-number-of-1s-and-even-number-o/17434694#17434694) –
從最終的正則表達式我有你應該明白,你需要爲6a和8b編寫所有可能的組合 - 是的,你可以寫出比較簡單的「正則表達式」(在正式語言中不是正則表達式)。 –
您建議的DFA已經很小。 –