2011-12-18 145 views
0

我有我有限狀態機。 我的正則表達式是:\+[0-9]+\+%\+[0-9]+ 問題是q3處於過度狀態(與q1相同)我想知道如何繞過該問題。 我應該簡單地將q3重命名爲q1還是什麼? 謝謝。 enter image description here有限狀態機過度狀態

EOS - 字符串結束。 如果你不記得RegX。 這基本上意味着接受的字符串將是:「+[0-9]([0-9]任意次數,但至少一次。)+%+[0-9]」([0-9]任意次數,但至少一次)

UPD1新的FSM,問題相同:q4和q2是一樣的如何克服這個問題?

+1

我真的不明白你的問題,但我想我會指出你的FSM實際上只匹配'\ + [0-9] * \ +%\ + [0-9] +'而不是' \ + [0-9] + \ +%\ + [0-9] +';也就是說,它允許第一組數字是空的。你需要將你的q 1分成兩個狀態。另外,我認爲恰當地說,你的q 2應該是三個獨立的狀態,每個字符都是'+'和'%'和'+',但我想現在的符號已經足夠清楚了。 – ruakh 2011-12-18 19:54:10

+0

是的,我犯了錯誤,但它沒有影響到這個問題。 – Nikita 2011-12-18 20:11:47

+0

你在這裏使用什麼工具?我有點困惑。 – StilesCrisis 2011-12-18 20:13:31

回答

3

這裏真的沒有問題。你寫出q 4「與q 2相同,但事實並非如此:只有其中的一個導致q 3,如果你給它的話,只有其中的一個導致q 5,如果你給它尾部的字符串。因此,他們必須由獨立的內部狀態來表示。

+0

您可能是對的,我剛剛與我的朋友就此發生了一點爭論,所以感謝您的回答,它有所幫助,也感謝您發現該錯誤。 – Nikita 2011-12-18 20:38:18