Python語言中的有限自動機(Finite Automata)是一種模型,用于描述抽象機器,它們基于一組事先確定的規則,從一個初始狀態開始接受輸入,并逐步地轉移到一組終止狀態。
Python中的有限自動機可以通過使用"automata-lib"等庫來快速創建和操作。 要創建有限自動機,請按照以下步驟進行:
# 引入 automata-lib 庫 import automata.lib.fa as fa # 創建有限自動機 m = fa.FiniteAutomaton() # 添加有限自動機狀態 m.add_state('0') m.add_state('1') m.add_state('2') # 添加有限自動機轉換 m.add_transition('0', '1', '0') m.add_transition('1', '2', '1') m.add_transition('1', '1', '0') m.add_transition('2', '2', '0') m.add_transition('2', '2', '1') # 定義有限自動機初始狀態和接受狀態 m.set_initial_state('0') m.add_accept_state('2') # 運行有限自動機 test1 = ['0', '1', '0', '1', '1', '0', '0', '1', '1'] test2 = ['0', '1', '0', '1', '1', '0', '1', '1'] print(m.accepts(test1)) # 輸出 True,test1 是有效輸入 print(m.accepts(test2)) # 輸出 False,test2 不是有效輸入
在上面的代碼中,我們創建了一個簡單的有限自動機,它從狀態"0"開始,并在輸入"0"后轉移到狀態"1"。 當當前狀態為"1"時,輸入"1"會將狀態轉移到"2",輸入"0"將狀態定在"1"。 只有當有限自動機的當前狀態在狀態"2"時,它才接受字符串。
使用Python中的有限自動機可以輕松地解決一些常見的問題,例如驗證電子郵件地址或檢查詞匯是否符合語言規則等。