Tôi đã chơi với câu hỏi rất thú vị và vẫn còn mở " Bảng chữ cái của máy Turing băng đơn " (của Emanuele Viola) và đưa ra ngôn ngữ sau:
trong đó là số s trong chuỗi x.
Ví dụ: nếu x = 01101111 thì n = 8, m = 3, k = 2; vậy
L có thể được nhận ra bởi Máy Turing với một băng đơn và bảng chữ cái 3 ký hiệu trong các bước không?
Nếu chúng ta sử dụng 4 ký hiệu thì câu trả lời là có:
- kiểm tra xem thay 0 s bằng ϵ và 1 s bằng 2 và đồng thời lưu m 1 s bên phải;
- sau đó đếm số s modulo m trong O ( n log n ) .
Ví dụ:
....01101111....... input x (|x| = 8 = 2^3)
000.021.1212.0001.. div 2, first sweep (000. can safely be used as a delimiter)
000.022.1222.00011. div 2, second sweep
000.022.2222.000111 div 2, third sweep --> m = 3 (= log(n) )
000..22.2222....111 cleanup (original 1s are preserved as 2)
000..22.2221102.... start modulo m=3 calculation
000..22.2210022.... mod 3 = 2
000..22.2000222.... mod 3 = 0
000..22.0012222.... mod 3 = 1
000..20112.2222.... mod 3 = 2
000..11122.2222.... ACCEPT
Nếu là số tự nhiên được biểu thị bằng x so với c o u n t 1 ( x ) luôn bằng 1 và vì vậy L = { 10 } ?
—
Marc Bury
Xin lỗi | x | nghĩa là độ dài của chuỗi x. Một ví dụ: x = 01101111, n = 8, m = 3, k = 2, và do đó
—
Marzio De Biasi
Nhân tiện, đây là một ứng cử viên tuyệt vời cho câu hỏi của Emanuele, vì nó nằm trong : nó không thường xuyên bởi bổ đề bơm, vì vậy không thể là o ( n log n ) , nhưng đó là O ( n log n ) .
—
Joshua Grochow