Vai al contenuto

Edizione IV

  • di

Problema 1

Programmare una macchina di Turing che, dato un nastro iniziale contenente una sequenza arbitraria di 0 e 1, termina la sua esecuzione lasciando sul nastro il bit di parità.

Tale bit è 1 se e solo se vi sono un numero dispari di 1 nella sequenza iniziale; altrimenti vale 0.

NASTRO INIZIALENASTRO FINALE
10111000101
00011001010
00000

Problema 2

Programmare una macchina di Turing che, dato un nastro iniziale contenente una sequenza arbitraria di 0 e 1, termina la sua esecuzione lasciando sul nastro un bit uguale a 1 se e solo se la sequenza è del tipo 0n1n0n, ovvero ci sono n simboli 0, poi n simboli 1 e infine n simboli 0, per un qualche intero n>0.

Altrimenti, il bit lasciato sul nastro è 0.

NASTRO INIZIALENASTRO FINALE
0001110001
00111000
001000

Problema 3

Programmare una macchina di Turing che, dato un nastro iniziale contenente una sequenza arbitraria di 0 e 1, termina la sua esecuzione lasciando sul nastro una sequenza finale ottenuta da quella iniziale raddoppiando gli 1.

NASTRO INIZIALENASTRO FINALE
00101101010011011110110110
1001110011
00000000

Problema 4

Sia fissata a priori la sequenza binaria 10110.

Programmare una macchina di Turing che, dato un nastro iniziale contenente una sequenza arbitraria di 0 e 1, termina la sua esecuzione lasciando sul nastro un bit uguale a 1 se e solo se la sequenza iniziale contiene P.
Altrimenti, il bit lasciato sul nastro è 0.

NASTRO INIZIALENASTRO FINALE
01001011011011
1000101000
01001011011010101

Problema 5

Programmare una macchina di Turing che, dato un nastro iniziale contenente una sequenza di simboli 0, 1, 2 e 3, termina la sua esecuzione lasciando sul nastro la sequenza finale contenente gli stessi elementi ordinati in maniera non decrescente.

NASTRO INIZIALENASTRO FINALE
2023032102032000230100000000112222223333
001223001223
322100001223

Problema 6

Programmare una macchina di Turing che, dato un nastro iniziale contenente un intero X rappresentato con cifre decimali, termina la sua esecuzione lasciando sul nastro il risultato della moltiplicazione di X per 11 (in cifre decimali).

NASTRO INIZIALENASTRO FINALE
48273531003
00
12132

Problema 7

Programmare una macchina di Turing che, dato un nastro iniziale contenente una sequenza arbitraria di 0 e 1, termina la sua esecuzione lasciando sul nastro un bit uguale a 1 se e solo se la sequenza iniziale è della forma xx, ovvero è una sequenza ripetuta due volte.
Altrimenti, il bit lasciato sul nastro è 0.

NASTRO INIZIALENASTRO FINALE
011101111
110110110
1011011

Problema 8

Programmare una macchina di Turing che, dato un nastro iniziale contenente una sequenza del tipo xSyRz (in cui x, y e z sono sequenze di simboli 0, 1 e 2, con x e y di uguale lunghezza), termina la sua esecuzione lasciando sul nastro la sola sequenza z in cui ciascun carattere di x è stato sostituito, ordinatamente, con il corrispondente carattere di y.

NASTRO INIZIALENASTRO FINALE
1S0R1221202202
02S10R0220110011
10S02R1001222222

Problema 9

Programmare una macchina di Turing che, data una sequenza del tipo n1xn2yn3z… con ciascun numero ni>0 rappresentato con cifre decimali, termini lasciando sul nastro una sequenza di n1 simboli x seguiti da n2 simboli y, da n3 simboli z ecc.
Si assuma che i simboli x, y e z siano A, B o C.

NASTRO INIZIALENASTRO FINALE
3A2B1AAAABBA
1C2B1C3ACBBCAAA
10CCCCCCCCCCC

Problema 10

Vedi discussione…

Lascia un commento

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