有限狀態機是什麼?

2021-08-20 19:09:56 字數 1297 閱讀 6998

有限狀態機,(英語:finite-state machine, fsm),又稱有限狀態自動機,簡稱狀態機, 是表示有限個狀態以及在這些狀態之間的轉移和動作等行為的數學模型。

其作用主要是描述物件在它的生命週期內所經歷的狀態序列,以及如何響應來自外界的各種事件。在電腦科學中, 有限狀態機被廣泛用於建模應用行為、硬體電路系統設計、軟體工程,編譯器、網路協議、和計算與語言的研究。

有限狀態機(finite-state machine)是乙個非常有用的模型,可以模擬世界上大部分事物。它 是乙個數學模型。是乙個抽象機器,在任何時候都可以處於有限數量的狀態之一。響應某些外部輸入, fsm可以從乙個狀態轉換到另乙個狀態; 從一種狀態到另一種狀態的變化稱為過渡。 狀態機的行為可以在現代社會中的許多裝置中觀察到,這些裝置根據它們呈現的事件序列執行預定的一系列行為。 例如自動售貨機,當存放適當的硬幣組合時分配產品,當車輛等待時改變順序的交通燈等。

在我們前端開發中,我們可以套用有限狀態機模型,將業務流程狀態化,劃分狀態和相應的觸發事件與動作,利用生命週期事件進行控制與執行

我們來看一下阮一峰對有限狀態機的描述

它有三個特徵:

狀態總數(state)是有限的。

任一時刻,只處在一種狀態之中。

某種條件下,會從一種狀態轉變(transition)到另一種狀態。

有限狀態機一般都有以下特點:

(1)可以用狀態來描述事物,並且任一時刻,事物總是處於一種狀態;

(2)事物擁有的狀態總數是有限的;

(3)通過觸發事物的某些行為,可以導致事物從一種狀態過渡到另一種狀態;

(4)事物狀態變化是有規則的,a狀態可以變換到b,b可以變換到c,a卻不一定能變換到c;

(5)同一種行為,可以將事物從多種狀態變成同種狀態,但是不能從同種狀態變成多種狀態。

有限狀態機有如何應用在具體場景?

滿足3點即可用:所需狀態確定,有事件觸發轉變狀態,總狀態有限且轉變有規律。

頁面可用有限狀態機的元素較多且有規律時可用:例如:開關按鈕,下拉列表,

還有任務中殺人遊戲的玩家死活狀態、白天黑夜狀態等

訊號燈

1.有限狀態機有哪些優點?

答:有限狀態機的寫法,邏輯清晰,表達力強,有利於封裝事件。乙個物件的狀態越多、發生的事件越多,就越適合採用有限狀態機的寫法。

2.為什麼宣告了有限狀態機沒有效果?

答:使用有限狀態機的第一步是要引入有限狀態機的js庫,不然是無法使用的。

3.可以用原生的js來模仿有限狀態機嗎?

更為清爽的瀏覽體驗,請移步我的個人部落格 

天心天地生的個人部落格

有限狀態機

有限狀態機 finite state machine,fsm 又稱有限狀態自動機,簡稱狀態機,是表示有限個狀態以及在這些狀態之間的轉移和動作等行為的數學模型。狀態儲存關於過去的資訊,就是說 它反映從系統開始到現在時刻的輸入變化。轉移指示狀態變更,並且用必須滿足來確使轉移發生的條件來描述它。動作是在給...

有限狀態機

以前,只碰到過 陣列中所有數字只出現2次,只有乙個出現1次,找這個數的問題 每次迴圈異或陣列中元素,最後的結果就是single one。這次換作出現3次就懵逼了,主要原因,沒有使用過有限狀態機,應該說是連概念都沒有,所以這次一定要好好記錄一下 關於這道題的解釋discussion中woshidais...

有限狀態機

需要掌握的名詞 數字系統有兩大類有限狀態機 finite state machine,fsm moore狀態機和mealy狀態機。狀態機名 次態輸出 moore摩爾 f 現狀,輸入 g 現狀 mealy公尺粒 f 現狀,輸入 g 現狀,輸入 mealy型狀態機 下一狀態不但與當前狀態有關,還與當前輸...