• Non ci sono risultati.

Esame I.A. 1 settembre 2020

N/A
N/A
Protected

Academic year: 2021

Condividi "Esame I.A. 1 settembre 2020"

Copied!
3
0
0

Testo completo

(1)

Esame I.A. 1 settembre 2020

Soluzioni

1 Esercizio 1

Data la famiglia di equazioni di ricorrenza indicata sotto, per valori dia interi positivi, individuare i limiti superiori e inferiori più stretti possibile:

T (n) = aT (bn/2c) + na−1 n ≥ 2

1 n < 2

Soluzione Data la forma della ricorrenza, è possibile utilizzare il Master Theorem:

Pera = 1, abbiamo α = log21 = 0, β = 0, da cui T (n) = Θ(log n);

Pera = 2, abbiamo α = log22 = 1, β = 1, da cui T (n) = Θ(n log n);

Pera = 3, abbiamo α = log23 = 2, β = 2, da cui T (n) = Θ(n2);

Proseguendo, si ottiene che in generalelog2a < a − 1 per tutti i valori interi a ≥ 3, pertanto si ottieneT (n) = Θ(na−1).

2 Esercizio 2

Un albero binario è simmetrico se il sottoalbero sinistro della radice è un’immagine speculare del sottoal- bero destro della radice. Nella figura sotto, l’albero binario a sinistra non è simmetrico, mentre quello di destra lo è. Scrivere un programma in python isSymmetric(T ) che prenda in input un albero binario T non vuoto e restituiscaTrue se T è simmetrico, False altrimenti.

1

(2)

Soluzione Un sottalbero è simmetrico se i suoi sottoalberi destro e sinistro sono speculari. Due sot- toalberi t1, t2 sono speculari se il sottoalbero sinistro di t1 è speculare al sottoalbero destro di t2 e il sottoalbero destro dit1 è speculare al sottoalbero sinistro di t1. Il caso base è dato da due nodi nulli (si ritornaTrue) o da uno nodo nullo e un nodo non nullo (si ritorna False). Una possibile implementazione è la seguente:

c l a s s T r e e N o d e:

def _ _ i n i t _ _( self , tL , tR ): s e l f . l e f t = tL

s e l f . r i g h t = tR

def i s S y m m e t r i c ( T ):

r e t u r n i s M i r r o r e d ( T . left , T . r i g h t )

def i s M i r r o r e d ( tL , tR ):

if tL is N o n e and tR is N o n e : r e t u r n T r ue

e l i f tL is not N o n e and tR is not N o ne :

r e t u r n i s M i r r o r e d ( tL . right , tR . l e f t ) and i s M i r r o r e d ( tL . left , tR . r i g h t ) e l s e :

r e t u r n F a l s e

Per testarla sugli alberi di esempio forniti nell’immagine sopra, è possibile utilizzare il seguente pro- gramma:

# A l b e r o n e l l a f i g u r a di e s e m p i o a s i n i s t r a

T l e f t = T r e e N o d e ( T r e e N o d e ( T r e e N o d e ( T r e e N o d e (None, N o n e) , T r e e N o d e (None, N o n e) ) , T r e e N o d e ( T r e e N o d e (None, No n e) , N o n e) ) , T r e e N o d e ( T r e e N o d e (None, No n e) , T r e e N o d e ( None, N o n e) ) )

p r i n t(" Il p r i m o a l b e r o e ‘ s i m m e t r i c o : ", i s S y m m e t r i c ( T l e f t ) )

# A l b e r o n e l l a f i g u r a di e s e m p i o a d e s t r a

T r i g h t = T r e e N o d e ( T r e e N o d e ( T r e e N o d e (None, T r e e N o d e (None, N o n e) ) , T r e e N o d e (None, N o n e) ) , T r e e N o d e ( T r e e N o d e (None, N on e) , T r e e N o d e ( T r e e N o d e (None, No n e) , N o n e) ) ) p r i n t(" Il s e c o n d o a l b e r o e ‘ s i m m e t r i c o : ", i s S y m m e t r i c ( T r i g h t ) )

La procedura effettua una visita su entrambi gli alberi, e quindi ha complessitàΘ(n).

3 Quiz

Dato un vettore composto dai seguenti elementi: 15,20,10,18. Quali sono i passi intermedi di ordinamento quando questo viene ordinato utilizzando l’algoritmo Insertion Sort?

X 15,20,10,18 – 10,15,20,18 – 10,15,18,20 – 10,15,18,20.

15,18,10,20 – 10,18,15,20 – 10,15,18,20 – 10,15,18,20.

15,10,20,18 – 15,10,18,20 – 10,15,18,20.

10, 20,15,18 – 10,15,20,18 – 10,15,18,20.

2

(3)

Se tutti gli elementi di un vettore sono uguali, ad esempio [1,1,1,1,1,1], qual è la complessità computazionale dell’Insertion Sort?

O(2n)

O(n2) X O(n)

Nessuna delle altre risposte

Affinché l’algoritmo di ricerca binaria possa funzionare correttamente, è necessario che il vet- tore di elementi all’interno del quale effettuare la ricerca sia:

Inserito in una pila

Inserito in un mucchio

Non ordinato X Ordinato

Quali dei seguenti algoritmi di ordinamento non sono stabili?

Bubble sort

Merge sort X Selection sort

Insertion sort

In quale caso una coda circolare può essere considerata piena?

read = (read + 1) % size

write = (write + 1) % size X read = (write + 1) % size

read = -1

3

Riferimenti

Documenti correlati

● I corpi solidi sono spesso formati da reticoli cristallini. ● Questi reticoli si possono deformare, tirandoli o

La possibile data, perché di ipotesi si tra@a, è emersa questa ma3na nel corso di una seduta della commissione capitolina Mobilità presieduta da Enrico Stefàno

[r]

[r]

Facendo

il Passo 3 esclude quelle soluzioni ammissibili che sono dominate da altre, ovvero con valore dell’obiettivo uguale (uguale terza componente) e peso complessivo (seconda

(Si derivi la forza per unit` a di lunghezza che due fili paralleli infiniti percorsi da corrente si esercitano vicendevolmente. Si dimostri che il campo magnetico generato da

Il modello che ritengo preferibile – più coerente con le ragioni sostanziali della causa estintiva del reato – distingue i tempi di prescrizione per fasce di gravità,