Para celebrar el cumpleaños de Alan Turing, Google publicó un garabato que muestra una máquina. ¿Qué tipo de máquina es el garabato? ¿Puede expresar un lenguaje completo de Turing?
Hay diferencias obvias en la máquina clásica de turing: una cinta finita, restricciones en cómo se puede conectar el estado, ...
El doodle aún estará disponible aquí.
(La pantalla en la parte superior derecha muestra la salida esperada).
La cinta en el medio se divide en cuadrados que pueden contener un espacio en blanco, un cero o uno. La cabeza se coloca sobre uno de los cuadrados y se usa para leer y escribir.
Debajo de la cinta puede ver una flecha verde en la que puede hacer clic para iniciar la máquina. Hay dos líneas de círculos al lado, algunas de las cuales están conectadas. Los llamaré "estados".
Después de que la máquina arranca, se enciende el primer estado a la derecha del botón verde, luego el siguiente a la derecha, y así sucesivamente ... Cada estado contiene uno de los siguientes comandos:
- en blanco = no hacer nada (solo pasar al siguiente estado)
- 1 = escribir uno en la cinta en la posición actual de la cabeza
- 0 = escribir un cero en la cinta en la posición actual del cabezal
- flecha hacia la izquierda = mover la cabeza un paso hacia la izquierda
- flecha hacia la derecha = mover la cabeza un paso hacia la derecha
- condición: si el valor debajo de la cabeza es igual al valor que se muestra en el cuadrado, vaya a la segunda línea de estados. si no, pase al siguiente estado a la derecha
- salto a la izquierda: regrese a un estado anterior (fijo) pero solo en la fila superior [¡Originalmente olvidé esa, gracias @Marzio!]
No hay forma de "superponer" dos saltos (uno sobre otro). La máquina se detiene cuando deja un estado y no hay un estado siguiente a la derecha.
(Después de que la máquina se detiene, el contenido de la cinta se compara con el contenido de la pantalla, pero no considero que sea parte de la funcionalidad prevista de la máquina).