構建一個用於將二進位制自然數加1的圖靈機?


圖靈機 (TM) 可以用七元組形式描述為:

(Q,X, ∑, δ,q0,B,F)

其中:

  • Q 是一個有限的狀態集。

  • X 是帶字母表。

  • ∑ 是輸入字母表。

  • δ 是一個轉移函式:δ:QxX->QxXx{左移, 右移}。

  • q0 是初始狀態。

  • B 是空白符號。

  • F 是最終狀態。

二進位制數

1 = 1

2 = 10

3 = 11

4 = 100

5 = 101

6 = 110

. . .

演算法

步驟 1 - 移動到字串的右端。

步驟 2 - 重複

如果當前單元格包含 1,則寫入 0 並向左移動,直到當前單元格包含 0 或空白。

步驟 3 - 寫入 1。

步驟 4 - 移動到字串的左端並停止。

讓我們稱之為 B。

TM 指令如下:

(0, 0, 0, R, 0) 向右掃描。

(0, 1, 1, R, 0) 向右掃描。

(0,B ,B , L, 1) 找到字串的右端。

(1, 1, 0, L, 1) 寫入 0 並向左移動,帶有進位位。

(1, 0, 1, L, 2) 寫入 1,加法完成。

(1,B , 1, S, Halt) 寫入 1,完成並處於正確位置

(2, 0, 0, L, 2) 向左掃描。

(2, 1, 1, L, 2) 向左掃描。

(2, B, B , R, Halt) 達到字串的左端並停止。

瞬時描述:11 + 1 =2???

狀態 0 - B 1 1 B       向右掃描

狀態 0 - B 1 1 B

狀態 0 - B 1 1 B       掃描完成。

狀態 1 - B 1 1 B       1 變為 0

狀態 1 - B 1 0 B       1 變為 0

狀態 1 - B 0 0 B       0 變為 1

停止 - B 1 0 0 B       完成!

更新於: 2021年6月16日

746 次瀏覽

開啟您的 職業生涯

透過完成課程獲得認證

立即開始
廣告