Edizione XII – Problema 3

Completezza

Si scriva un programma per macchina di Turing che, ricevuta in ingresso sul nastro una stringa sull’alfabeto {C, H, O}, lasci sul nastro la scritta SI se la stringa in ingresso conteneva ciascuno dei caratteri dell’alfabeto almeno una volta (la stringa in questo caso si dice completa rispetto all’alfabeto), NO in caso contrario.

Esempi

Nastro inizialeNastro finale
1°COONO
2°HCCOSI
3°COONO
4°HHHHHNO
5°OHHHHCSI

Diagramma di stato

1203_

Osserva

  • Il nome dello stato, C, H, O, CH, CO, HO, CHO, indica le lettere diverse incontrate fino a quel momento.
  • Se l’input finisce e si trova nello stato CHO scrive SI
  • Se si trova in un qualsiasi altro stato scrive NO

Quintuple

(0, C, C, -, >)
(0, H, H, -, >) 
(0, O, O, -, >)
(C, C, C, -, >) 
(C, H, CH, -, >) 
(C, O, CO, -, >) 
(H, C, CH, -, >) 
(H, H, H, -, >)
(H, O, HO, -, >)
(O, C, CO, -, >)
(O, H, HO, -, >)
(O, O, O, -, >) 
(CH, [CH], CH, -, >)
(CH, O, CHO, -, >) 
(CO, [CO], CO,-, >)
(CO, H, CHO, -, >)
(HO, [HO], HO, -, >)
(HO, C, CHO, -, >)
(C, -, NO, N, >)
(CH, -, NO, N, >)
(CO, -, NO, N, >)
(H, -, NO, N, >)
(HO, -, NO, N, >)
(O, -, NO, N, >)
(NO, -, F, O, >)
(CHO, [CHO], CHO, -, >)
(CHO, -, SI, S, >) 
(SI, -, F, I, >)
  1. Ha letto una C
  2. Ha letto una H
  3. Ha letto una O
  4. …
  5. Ha letto almeno una C e almeno una H
  6. Ha letto almeno una C e almeno una O
  7. Ha letto almeno una C e almeno una H
  8. ..
  9. Ha letto almeno una H e almeno una O
  10. Ha letto almeno una C e almeno una O
  11. Ha letto almeno una H e almeno una O
  12. …
  13. …
  14. Ha letto almeno una C, una H e una O
  15. …
  16. Ha letto almeno una C, una H e una O
  17. …
  18. Ha letto almeno una C, una H e una O
  19. Scrive NO
  20. …
  21. …
  22. …
  23. …
  24. …
  25. …
  26. Salta C, H, O
  27. Scrive SI
  28. …

Lascia un commento