背景提要:星期三的時候,xw交給我乙個點燈的任務:大意是乙個玩意單擊的時候如何如何,長按又如何如何,雙擊又如何如何,幾種狀態分別執行不同的操作。
這就導致了一種情況:在機器第一次檢測到按鈕被按下時,我們無法做出論斷:我們不知道這是一次雙擊還是長按還是單擊,我們只能靜觀其變,見機行事。但是按鈕被按下時,我們的機器接收到了新的資訊,確鑿要進入一種和無輸入狀態不同的新的狀態。或許之後由這個新的狀態進入更新的狀態。等到資訊足以確認這是哪一種按鍵方法時,我們進入最終的狀態並作出相應的操作。
仔細觀察上述過程之後,我們便得以很容易地抽象出這一過程的幾種組成要素,而這也是有限狀態自動機(fsm finite state machine 或 fsa finite state automaton)的一些概念:
說了這麼多,來個題目:
有一台電腦和乙個引腳,引腳連線著乙個開關,開關被觸碰時按下,鬆開後彈起,電腦可以接收開關的狀態。要求實現乙個生成器 returnstate ,可以檢測到一次按鍵、兩次按鍵、三次按鍵、長按四種不同的情況。(若短按兩次後第三次長按,按照兩次操作考慮)
有限狀態自動機
有限自動機是更一般化的狀態轉化圖。分為確定有限自動機 dfa 和不確定有限自動機 nfa m s,f,so,z 其中 下圖為乙個確定的有限狀態自動機 m s,f,so,z 其中 下圖為乙個不確定的有限狀態自動機 說了半天其實它們的本質區別就在於s0,確定的有限狀態自動機的s0是唯一確定的。而不確定的...
有限狀態自動機
有限自動機是更一般化的狀態轉化圖。分為確定有限自動機 dfa 和不確定有限自動機 nfa m s,f,so,z 其中 下圖為乙個確定的有限狀態自動機 m s,f,so,z 其中 下圖為乙個不確定的有限狀態自動機 說了半天其實它們的本質區別就在於s0,確定的有限狀態自動機的s0是唯一確定的。而不確定的...
有限狀態自動機
有限狀態自動機 分為確定有限狀態自動機 dfa 和不確定有限狀態自動機 nfa 假設有字串 s x1 x2 x3 x4 xn 在轉移函式的驅動下,狀態轉移,如果當s中的所有字元被讀完,最終落在接受狀態上,則稱狀態機接收此字串。1.確定有限狀態自動機 dfa m s,f,so,z 其中 s是乙個有限狀...