Vai al contenuto

Edizione I – Problema 4

  • di

Una sequenza si dice palindroma se la sua lettura da sinistra verso destra è uguale alla sua lettura da destra verso sinistra.

Programmare una Macchina di Turing che, dato un nastro iniziale contenente una sequenza di A e B, termina la sua esecuzione lasciando sul nastro la sola sequenza SI se la sequenza iniziale è palindroma, la sola sequenza NO altrimenti.

Esempi

NASTRO INIZIALENASTRO FINALE
ABABASI
ABBASI
BABBANO
ASI

Algoritmo

0104

  • Se la prima lettera è una AB la elimina e va a cercarla a destra
  • Se trova la lettera cercata torna a sinistra e ricomincia
  • Se non trova la lettera cercata elimina tutto e scrive NO
  • Se finiscono le lettere scrive SI
CodiceCommenti
(0,A,A,-,>) Va a destra
(A,AB,A,AB,>)
(A,-,AA,-,<) Torna a sinistra
(AA,[A-],S,-,<)Ha trovato la A
(AA,B,N,-,<) Ha trovato una B
(0,B,B,-,>) Va a destra
(B,AB,B,AB,>)
(B,-,BB,-,<) Torna a sinistra
(BB,A,N,-,<) Ha trovato una A
(BB,[B-],S,-,<) Ha trovato la B
(S,AB,S,AB,<) Torna a sinistra
(S,-,0,-,>)Ricomincia
(0,-,SI,S,>)Scrive SI
(SI,-,H,I,>)
(N,[AB],N,-,<) Cancella tutto
(N,-,NO,N,>)Scrive NO
(NO,-,H,O,>)

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *