Programmare una Macchina di Turing che, dato un nastro iniziale contenente la rappresentazione decimale di un numero intero positivo k, termina la sua esecuzione lasciando sul nastro la sola sequenza SI se k è un numero pari, la sola sequenza NO altrimenti.
Esempi
| Nastro iniziale | Nastro finale | |
|---|---|---|
| 1° | 148 | SI |
| 2° | 2763 | NO |
Diagramma di stato #1

- Per ogni cifra pari letta rimane/va nello stato 0
- Per ogni cifra dispari letta rimane/va nello stato D
- Se finisce l’input in 0 scrive SI
- Se finisce l’input in D scrive NO
Tabella delle transizioni di stato #1
| 02468 | 13579 | – | |
|---|---|---|---|
| 0 | 0,-,> | D,-,> | SI,S,> |
| D | 0,-,> | D,-,> | NO,N,> |
| SI | H,I,- | ||
| NO | H,O,- |
Quintuple #1
(0, 02468, 0, -, >)
(0, 13579, D, -, >)
(0, -, SI, S, >)
(SI, -, H, I, -)
(D, 02468, 0, -, >)
(D, 13579, D, -, >)
(D, -, NO, N, >)
(NO, -, H, O, -)
- Per ogni cifra pari rimane nello stato 0
- Per ogni cifra dispari passa allo stato D
- Se finisce scrive SI
- …
- Per ogni cifra pari passa allo stato 0
- Per ogni cifra dispari rimane nello stato D
- Se finisce scrive NO
- …
Diagramma di stato #2
- Raggiunge la prima cifra a destra
- Se è 0/2/4/6/8 cancella tutto a sinistra e scrive SI
- Se è 1/3/5/7/9 cancella tutto a sinistra e scrive NO
Quintuple #2
(0, 0..9, 0, 0..9, >)
(0, -, PD, -, <)
(PD, 02468, P, -, <)
(PD, 13579, D, -, <)
(P, 0..9, P, -, <)
(D, 0..9, D, -, <)
(P, -, S, I, <)
(S, -, H, S, -)
(D, -, N, O, <)
(N, -, H, N, -)
- Per ogni cifra va a destra
- Il numero è finito
- Decide se Pari
- Decide se Dispari
- Va a sinistra per scrivere SI
- Va a sinistra per scrivere NO
- Scrive SI
- …
- Scrive NO
- …