Eu estava brincando com a pergunta muito interessante e ainda aberta " Alfabeto da máquina de Turing de fita única " (de Emanuele Viola) e surgiu com o seguinte idioma:
onde é o número de 1 s na cadeia de x.
Por exemplo, se x = 01101111, então n = 8, m = 3, k = 2; então
L pode ser reconhecido por uma máquina de Turing com uma única fita e um alfabeto de 3 símbolos nas etapas O ( n log n ) ?
Se usarmos 4 símbolos, a resposta é sim:
- verifique se substituindo 0 s por ϵ e 1 s por 2 e, ao mesmo tempo, armazene m 1 s à direita;
- então conte o número de s módulo m em O ( n log n ) .
Por exemplo:
....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