設計一個摩爾機來生成二進位制數的1的補碼。
摩爾機有6個元組,如下所示:
(Q, q0, Σ, O, δ, λ)
其中,
- Q:有限狀態集
- q0:機器的初始狀態
- Σ:有限的輸入符號集
- O:輸出字母表
- δ:轉移函式,其中 Q × Σ → Q
- λ:輸出函式,其中 Q → O
狀態轉換圖如下:

解釋
- 步驟1 - q0 是起始狀態,輸入 '0' 轉移到 q1 狀態,輸入 '1' 轉移到 q2 狀態,並生成輸出 0。
- 步驟2 - q1 在輸入 '0' 時轉移到自身,輸入 '1' 時轉移到 q2 狀態,並生成輸出 '1'。
- 步驟3 - q2 在輸入 '0' 時轉移到 q1,輸入 '1' 時轉移到 q2,並生成輸出 '0'。
例如,
取一個二進位制數:1011。
輸入
| 輸入 | 1 | 0 | 1 | 1 | |
|---|---|---|---|---|---|
| 狀態 | q0 | q2 | q1 | q2 | q2 |
| 輸出 | 0 | 0 | 1 | 0 | 0 |
讓我們為給定的語言構建狀態轉換表。該表如下所示:
| 當前狀態 | 下一狀態 | 輸出 | |
|---|---|---|---|
| 0 | 0 | ||
| ->q0 | q1 | q2 | 0 |
| q1 | q1 | q2 | 1 |
| q2 | q1 | q2 | 0 |
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP