Funzione per trovare elementi comuni in due alberi binari di ricerca
Scrivere una funzione che dati due alberi binari di ricerca b1 e b2 restituisca una lista con gli elementi comuni a b1 e b2.
# Ragionamento: si procede visitando b1 e si guarda se per ogni elemento di b1
# ne corrisponde uno di b2
import tree
def tree_intersection(b1, b2):
intersection = []
to_visit = []
to_visit.append(b1)
while to_visit:
n = to_visit.pop(0)
found, found_node = tree.search(b2, n.data)
if found:
intersection.append(n.data)
if n.left:
to_visit.append(n.left)
if n.right:
to_visit.append(n.right)
return intersection
tree1 = tree.populate_tree_from([4, 10, -20, 3, 15])
tree2 = tree.populate_tree_from([2, 3, 15, 70, -40, 4])
print(tree_intersection(tree1, tree2))
Funzione per ritagliare una matrice quadrata
Data una matrice A NxM con M>N, scrivere una funzione che ritagli e restituisca una matrice quadrata Q NxN contenente l'elemento A00 e stampi il numero di colonne escluse e gli elementi esclusi colonna per colonna.
# esempio:
# A = 1 2 3
# 4 5 6
# Q = 1 2
# 4 5
# Esempio Stampa:
# N_col = 1
# 3 6
def sotto_matrice(mat):
N = len(mat) # righe
M = len(mat[0]) # colonne
print(N, M)
Q = []
for i in range(N):
Q.append(mat[i][0:N])
print(f'Numero colonne escluse: {M-N}')
for j in range(N, M):
for i in range(N):
print(mat[i][j])
return Q
m = [[1, 2, 3, 4, 5], [10, 20, 30, 40, 50]]
print(sotto_matrice(m))
Funzione per calcolare la somma dei quadrati degli elementi di una matrice
Scrivere una funzione che prenda in ingresso una matrice A e renda una lista L contenente la somma dei quadrati degli elementi di ogni riga della matrice.
# A = 1 2 3
# 4 5 6
# L = [14, 77]
def quad_mat(m):
L = [0]*len(m)
for i in range(len(m)):
for j in m[i]:
L[i] += j*j
return L
m = [[1, 2, 3], [4, 5, 6]]
print(quad_mat(m))
Funzione per estendere una lista con numeri random
Scrivere una funzione che prenda in ingresso una lista L e la modifichi aggiungendo degli elementi con numeri random fino ad arrivare ad una dimensione di N specificata al momento dell'esecuzione passata in input alla funzione.
# L = [3, 5], N = 6
# L' = [3, 5, 1, -2.1, 3, 0.3]
import random
def modifica(L, N):
L1 = []
L1 += L
for i in range(N - len(L)):
L1.append(random.random()) # Corretto l'uso di randint() in random()
return L1
L = [3, 5]
N = 6
print(modifica(L, N))
-
Esercizi Informatica Python
-
Esercizi 2 Informatica programmazione Python
-
Esercizi svolti per python Informatica
-
Esercizi Informatica (Python)