- Tư tưởng thuật toán:
Đầu dọc máy Turing gặp dấu vạch đầu tiên “|” chuyển thành kí tự “0”, nếu gặp kí tự “#” chương trình dừng, gặp vạch “|” chuyển thành “?” cộng 1 vào số trước “?” trái nhất. Khi hết kí tự “|” xóa các kí tự “?”. Dừng chương trình.
- Mã lệnh chương trình:
% Bien doi bieu dien vach sang so thap phan |||| => 3
% Bien doi bieu dien vach sang dang thap phan
1 | 0 R 2 // Khoi tri 0 tai | dau tien (Trai nhat)
2 # _ _ 0 // input = |: stop
2 | ? L 3 // Xoa | trai nhat
3 _ _ L 3 // Cong 1 3 {012345678} $& R 4 3 9 0 L _ 3 # 1 R 4 // Cong xong 4 _ _ R _ // Ve dau phai 4 # _ L 5 // Xoa ? 5 ? # L _ 5 _ _ _ 0 4 | ? L 3 E - Trong mã lệnh trên:
Bảng chữ cái là: các chữ số từ 0 đến 9, dấu vạch thẳng |, kí tự hai chấm “?”, kí tự khoảng trắng mặc định là “#”.
Tập trạng thái: 0,1,2,3,4,5. Trong đó trạng thái bắt đầu là 1, trạng thái kết thúc là 0.
Các kí hiệu %, // là toán tử điều khiển chú thích.
- Mô phỏng với bộ số đầu vào |||||||||||||| (14 vạch)
Final output: #13# (2)
Timer: 213
Vậy với thuật toán trên máy Turing cần 213 bước chuyển và ô nhớ cần 15 ô (vì các bước chuyển trung gian quá dài nên học viên chỉ đưa ra kết quả cuối cùng, số ô nhớ 15 là số ô được dùng trong quá trình xử lí của thuật toán).
* Thuật toán sử dụng imem:
- Tư tưởng thuật toán:
Khởi tạo imem, đầu đọc máy Turing gặp kí tự “|” trái nhất chuyển thành kí tự “#” (xóa vạch đầu tiên). Nếu hết vạch, dừng chương trình, gặp vạch cộng thêm 1 vào imem. Nạp hết kí tự “|” trên băng đưa giá trị trong imem ra băng, chương trình kết thúc.
- Mã lệnh chương trình:
% Chuyen dang vach sang so thap phan
% Dung imem
1 _ $i _ 2 // Khoi tri imem
2 | # R 3
3 # $> N 0 // Xuat imem, stop
3 | # N 4
4 _ $+ R 3 // Tang imem
E
- Trong mã lệnh trên:
Bảng chữ cái là: các chữ số từ 0 đến 9, dấu vạch thẳng |, kí tự khoảng trắng mặc định là “#”.
Tập trạng thái: 0,1,2,3,4. Trong đó trạng thái bắt đầu là 1, trạng thái kết thúc là 0.
Sử dụng bộ nhớ imem và các toán tử liên quan đến imem.
Các kí hiệu %, // là toán tử điều khiển chú thích.
- Mô phỏng với bộ số đầu vào |||||||||||||| (14 vạch).
Input: #||||||||||||||# (14)
Final output: #13# (2)
Timer: 29
Vậy với thuật toán trên máy Turing cần 29 bước chuyển và ô nhớ cần 14 ô (vì các bước chuyển trung gian quá dài nên học viên chỉ đưa ra kết quả cuối cùng, số ô nhớ 14 là số ô được dùng trong quá trình xử lí của thuật toán).