我有這樣的正則表達式正則表達式到NFA [曝光] | [曝光] [曝光] [曝光] | [曝光] [曝光] [曝光] [曝光]
[A-E]|[A-E]{3}|[A-E]{4}
[A-E]|[A-E] [A-E] [A-E]|[A-E][A-E][A-E] [A-E]
它承認A,B, ABC, BCD, BCDE, etc.
串
我想構建NFA,但不知道我是否正確
我已經這樣做了
或本
哪一個是正確的?
我[A-E]
NFA是
我有這樣的正則表達式正則表達式到NFA [曝光] | [曝光] [曝光] [曝光] | [曝光] [曝光] [曝光] [曝光]
[A-E]|[A-E]{3}|[A-E]{4}
[A-E]|[A-E] [A-E] [A-E]|[A-E][A-E][A-E] [A-E]
它承認A,B, ABC, BCD, BCDE, etc.
串
我想構建NFA,但不知道我是否正確
我已經這樣做了
或本
哪一個是正確的?
我[A-E]
NFA是
最小DFA是以下
0 - > 1 - > 2 - > 3 - > 4
與每一個過渡拱由[AE]簽署並且最終狀態= {1,3,4}
事實上,這個DF A相當於你的NFA。不過我發現第二個更清晰。
另外,我們如何使表達式成爲(A)或三角形(ABC)或矩形(ABCD),因此它不能識別雙字母的輸入,例如「ABC」是可以接受的但是「AAC」不是 這個表達意在描述角度AACB必須作爲矩形的名稱被拒絕或被分析爲A(角度),ACB(三角形)而不是AACB .... – 2013-04-22 14:49:44
在最簡單的情況下(ordere d個字母)一個線性自動機就足夠了(除了第一個以外所有的最終狀態)。 但是,如果你想承認所有的排列組合有點困難。 我不是專家,但也許對於這種情況下更好地定義一個合適的語法。 看看[這裏](http://stackoverflow.com/questions/10332894/)的問題的正則表達式的觀點。 – 5agado 2013-04-22 15:06:08
我會說#2更清晰,但他們都看起來是正確的。 – iamnotmaynard 2013-04-22 14:25:13
我關注的是第二個流程, 比方說,用戶輸入ABCD, 在第一個,我們有A-> B-> C-> d - >最終 但在第二NFA我們如何才能確定哪條路線應該採取,如果A例如首先成功......但是正確的是將兩個ABCD都放入[AE] {4}的第三條路線...... – 2013-04-22 14:32:08