我有一個程序,只是需要所有狀態爲一組狀態作爲輸入。 然後就是採取的下一個輸入是所述一組狀態中的初始狀態,然後設置最終的狀態。DFA字符串驗證
接下來是一組過渡的,我走在狀態之中。
例如:q0,1,q1
這意味着上輸入的一個有從Q0到Q1的過渡。
每個國家都進入了過渡。
但在這裏我所面對的是refrences可以以隨機方式 是過渡可以是不重複的字符轉換的n個,因此這個原因我想保持一個HashMap對象jumpled起來每個狀態動態。
我該如何做到這一點?
我有一個程序,只是需要所有狀態爲一組狀態作爲輸入。 然後就是採取的下一個輸入是所述一組狀態中的初始狀態,然後設置最終的狀態。DFA字符串驗證
接下來是一組過渡的,我走在狀態之中。
例如:q0,1,q1
這意味着上輸入的一個有從Q0到Q1的過渡。
每個國家都進入了過渡。
但在這裏我所面對的是refrences可以以隨機方式 是過渡可以是不重複的字符轉換的n個,因此這個原因我想保持一個HashMap對象jumpled起來每個狀態動態。
我該如何做到這一點?
由於這是一個DFA,可以更容易和更有效,以保持從(狀態,輸入)對一個單一的散列映射到結果狀態。 DFA屬性保證可以以這種方式將轉換關係視爲一種功能。
所以,保持HashMap<StateInput, State> trans
做trans.put(StateInput(q0, 1), q1)
你給的例子,其中
class StateInput {
public State state;
public int input;
}
這樣的事情,也許?
class State {
private Map<State, Character> transitions;
// ...
public void addTransition(State nextState, Character input) {
transistions.put(nextState, input);
}
// ...
}
現在StateInput類中Class對象的引用在上面的例子中獲得了值q0。我不清楚StateInput類的構造函數中發生了什麼。還有關於State類的構造函數。 addTransition被賦予在國家方面的關鍵,價值和焦炭分別鍵和值。但如果價值成爲關鍵,它會更好嗎? –