31 maggio 2016, prova 05
Rispondi prima di leggere la spiegazione. I termini sottolineati offrono un aiuto rapido.
- 1
È falso che ?
- 2
Assumiamo che e coincidano. È falso che ?
- 3
Un problema risolubile in spazio non può essere risolto in spazio ?
- 4
Esistono linguaggi accettati da MdT nondeterministiche che non sono in RE?
- 5
GEOGRAPHY appartiene a PP?
- 6
È vero che non è L-hard?
- 7
QSAT è P-hard?
Programmare una MdT che divide una cifra binaria per 2
| # | Stato | Legge | Nuovo stato | Scrive | Mossa | Commento | ||
|---|---|---|---|---|---|---|---|---|
| 1 | ||||||||
| 2 | ||||||||
| 3 |
Da controllare
- Riga 3: lo stato q non ha righe: lì la macchina si blocca e rigetta
Prossima transizione (riga 1): δ(s, ▷) = (s, ▷, →) · supera l'inizio del nastro
La macchina deve calcolare la divisione intera per 2, scartando il resto. Per farlo cancella l'ultima cifra: , cioè con resto 1.
Se l'input ha una sola cifra, scrivi 0, perché il risultato non deve essere un nastro vuoto.
| commento | |||
|---|---|---|---|
| fine input | |||
| cancella l'ultima cifra | |||
| è rimasta almeno una cifra | |||
| non è rimasto niente… | |||
| …quindi scrive 0 |
Traccia su input 101 (= 5) e sul caso limite 1:
▷ 1 0 1 [⊔] s : fine input, torno indietro
▷ 1 0 [1] ⊔ q : cancello l'ultima cifra
▷ 1 [0] ⊔ ⊔ r : è rimasta almeno una cifra: mi fermo (h)
risultato 10 = 2 ✔
▷ 1 [⊔] s : fine input, torno indietro
▷ [1] ⊔ q : cancello l'unica cifra
[▷] ⊔ ⊔ r : non è rimasto niente
▷ [⊔] ⊔ z : scrivo 0 e mi fermo (h)
risultato 0 ✔
Nella tabella sono sottintese le righe del blocco «vai in fondo»: e . La macchina va in fondo all'input e, sulla prima cella vuota, comincia la parte propria di ogni esercizio.
Eseguila passo per passo
Prossima transizione: δ(s, ▷) = (s, ▷, →) · supera l'inizio del nastro
Mostra il codice della soluzione
s ▷ -> s ▷ R # supera l'inizio del nastro s b -> s b R # vai in fondo s ⊔ -> q ⊔ L # fine input q b -> r ⊔ L # cancella l'ultima cifra r b -> h b S # è rimasta almeno una cifra r ▷ -> z ▷ R # non è rimasto niente… z ⊔ -> h 0 S # …quindi scrive 0