構造一個圖靈機來識別語言 L = {aibjck | i*j = k; i, j, k ≥ 1}
在這裡,我們將學習如何為語言 L = {AiBjCk | i * j = k; i, j, k ≥ 1} 建立一個圖靈機。這表示一種僅使用三個字元 A、B 和 C 的語言。w 是一個字串。因此,如果 w = AABBBBCCCCCCCC,則圖靈機將接受它。
為了解決這個問題,我們將採用以下方法。
首先將一個 A 替換為 x 並向右移動。然後跳過所有 A 並向右移動。
當磁頭到達第一個 B 時,將一個 B 替換為 y,然後向右移動,跳過所有中間的 B,並對應於被替換的 B,現在將一個 C 替換為 z 並向左移動。
現在向左移動,跳過所有 z 和 B。
當指標指向最近的 y 時,向右移動。
如果指標指向 B,則重複步驟 2 到 4;否則,如果指標指向 z,則向左移動,同時將所有 y 替換為 B 並跳過所有 A。
當指標到達最近的 x 時,向右移動。
如果指標仍然指向 A,則重複上述所有步驟;否則,當磁頭位於 y 時,向右移動,跳過所有 y 和 z。
當到達 $ 時,向左移動。字串被接受。
狀態轉換圖

- 相關文章
- 構造一個圖靈機來識別語言 L = {aibjck | i>j>k; k ≥ 1}
- 構造一個圖靈機來識別語言 L = {aibjck | i
- 最大化 arr[j] – arr[i] + arr[l] – arr[k],條件是 i < j < k < l (C++)
- 為語言 L = {0n1n2n | n≥1} 構造一個圖靈機
- 在陣列中查詢最大三元組和,條件是 i < j < k 且 a[i] < a[j] < a[k] (C++)
- 在陣列中查詢最大三元組和,條件是 i < j < k 且 a[i] < a[j] < a[k] (Python)
- 最小化三個不同已排序陣列的 (max(A[i], B[j], C[k]) – min(A[i], B[j], C[k])) (C++)
- 最小化三個不同已排序陣列的 (max(A[i], B[j], C[k]) – min(A[i], B[j], C[k])) (Python)
- 為語言 L = {wwr | w ∈ {0, 1}} 構造一個圖靈機
- 計算 n×n 矩陣中 k 的頻率,其中矩陣(i, j) = i+j (C++)
- 構造一個圖靈機來識別語言 L = {a^n b^n | n>=1}
- 構造一個圖靈機來識別語言 L = {ww | w ∈ {0,1}}
- Python程式:查詢一對 (i, j),使 nums[i] + nums[j] + (i -j) 最大化
- 計算滿足 A[i] < B[j] < C[k] 的三元組數量 (C++)
- 構造圖靈機來識別語言 L = {an bm a(n+m) - n,m≥1} (C++)