什麼是 TOC 中的摩爾機?
摩爾機是一種有限狀態機,其中下一狀態由當前狀態和當前輸入符號決定。
給定時間的輸出符號僅取決於機器的當前狀態。
摩爾機有 6 個元組
(Q, q0, Σ, O, δ, λ)
其中,
- Q:有限狀態集
- q0:機器的初始狀態
- Σ:有限輸入符號集
- O:輸出字母表
- δ:轉移函式,其中 Q × Σ → Q
- λ:輸出函式,其中 Q → O
狀態圖如下所示:

示例 1
輸入 - 010
轉移 - δ (q0,0) => δ(q1,1) => δ(q1,0) => q2
輸出 - 1110(q0 為 1,q1 為 1,q1 再次為 1,q2 為 0)
摩爾機的狀態轉換表如下所示:
| 當前狀態 | 下一狀態 | 輸出 | |
|---|---|---|---|
| 0 | 1 | ||
| q0 | q1 | q2 | 1 |
| q1 | q2 | q1 | 1 |
| q2 | q2 | q0 | 0 |
解釋
- 步驟 1 - 當前狀態 q0 在輸入“0”時轉到狀態 q1,在輸入“1”時轉到狀態 q2,生成輸出 1。
- 步驟 2 - q1 在輸入“0”時轉到狀態 q2,在輸入“1”時轉到狀態 q1,生成輸出“1”。
- 步驟 3 - q2 在輸入“0”時轉到 q2,在輸入“1”時轉到 q0,生成輸出“0”。
示例 2
設計一個摩爾機,判斷輸入字串是否包含偶數或奇數個 1。
如果輸入是偶數個 1,則輸出為 1
否則,輸出為 0
狀態轉換圖如下所示:

狀態轉換表
狀態轉換表如下所示:
| 當前狀態 | 輸入 0 的下一狀態 | 輸入 1 的下一狀態 | 輸出 |
|---|---|---|---|
| ->q0 | q0 | q1 | 1 |
| q1 | q1 | q0 | 0 |
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP