Estaba jugando con la muy interesante y abierta pregunta " Alfabeto de la máquina de Turing de una sola cinta " (por Emanuele Viola) y se me ocurrió el siguiente idioma:
donde es el número de s en la cadena x.1
Por ejemplo, si x = 01101111 entonces n = 8, m = 3, k = 2; entonces
¿Puede L ser reconocido por una máquina de Turing con una sola cinta y un alfabeto de 3 símbolos en pasos? O ( n log n )
Si usamos 4 símbolos, la respuesta es sí:
- compruebe si reemplaza s con y s con y al mismo tiempo almacene s a la derecha; 0 ϵ 1 2 m 1
- luego cuente el número de s módulo en .m O ( n log n )
Por ejemplo:
....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
Si es el número natural representado por que es siempre igual a y entonces ? x c o u n t 1 ( x ) 1 L = { 10 }
—
Marc Bury
Lo siento | x | significa longitud de la cuerda x. Un ejemplo: x = 01101111, n = 8, m = 3, k = 2, y por lo tanto
—
Marzio De Biasi
Por cierto, este es un excelente candidato para la pregunta de Emanuele, ya que está en : no es regular por el lema de bombeo, por lo que no puede ser , pero es . o ( n log n ) O ( n log n )
—
Joshua Grochow