Estratto del documento

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))
Anteprima
Vedrai una selezione di 1 pagina su 4
Esercizi Informatica programmazione Python Pag. 1
1 su 4
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher stefanodenti06 di informazioni apprese con la frequenza delle lezioni di Fondamenti di informatica e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Firenze o del prof Paolucci Michela.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community