Algoritmi e Strutture Dati & Laboratorio di Algoritmi e Programmazione
|
|
|
- Dante Tommasi
- 10 anni fa
- Просмотров:
Транскрипт
1 Algoritmi e Strutture Dati & Laboratorio di Algoritmi e Programmazione Esercizi II parte Esercizio 1 Discutere la correttezza di ciascuna delle seguenti affermazioni. Dimostrare formalmente la validità delle risposte date. 1. La ricerca di una chiave in un albero R/B ha complessità asintotica lineare nel numero dei nodi dell albero. 2. La ricerca di una chiave in un max-heap binario ha complessità asintotica lineare nel numero dei nodi dell albero. 3. L inserimento di una chiave in un BST ha complessità asintotica lineare nel numero dei nodi dell albero. 4. La ricerca di una chiave in un array ordinato ha complessità asintotica logaritmica nel numero di elementi dell array. 1. La ricerca di una chiave in un albero R/B ha complessità asintotica lineare nel numero dei nodi dell albero. No, la complessità asintotica è lineare nell altezza (come è stato dimostrato per tutti i BST) e negli alberi R/B tale altezza è logaritmica nel numero dei nodi. 2. La ricerca di una chiave in un max-heap binario ha complessità asintotica lineare nel numero dei nodi dell albero. Sì, la condizione di max-heap, nel caso peggiore in cui la chiave cercata non è presente ed è minore di tutte le chiavi presenti, richiede la visita di tutti gli elementi. 3. L inserimento di una chiave in un BST ha complessità asintotica lineare nel numero dei nodi dell albero. Sì, la complessità dell operazione di inserimento è lineare nell altezza che è, nel caso peggiore, lineare nel numero di nodi. 4. La ricerca di una chiave in un array ordinato ha complessità asintotica logaritmica nel numero di elementi dell array. Sì, perchè possiamo applicare l algoritmo di ricerca binaria. Esercizio 2 1. In quanto tempo è possibile trovare una chiave in un albero R/B di n elementi? Giustificare la risposta. 2. Dato il seguente albero BST \ \ / si consideri l inserimento della chiave 16 seguito dalla cancellazione della chiave 8 e si disegni l albero risultante.
2 1. La risposta corretta è Θ(lg n), dato che un albero R/B è un BST bilanciato. 2. L albero finale è: / Esercizio 3 Sia T un albero generale i cui nodi hanno chiavi intere e gli attributi: chiave, figlio, fratello. Scrivere un algoritmo che trasforma T raddoppiando i valori di tutte le chiavi sui livelli dispari dell albero. Si tratta di realizzare una visita dell albero che tiene conto del livello del nodo considerato. La chiamata esterna sarà trasforma(root[t],false), assumendo che la radice si trovi sul livello 0 (pari). trasforma(x,raddoppia) if x =/= NIL then if raddoppia then chiave[x] <- 2*chiave[x] trasforma(fratello[x],raddoppia) trasforma(figlio[x], not(raddoppia)) Esercizio 4 Si assuma di disporre dei seguenti costruttori di alberi binari: - tree NIL() che restituisce una foglia NIL, - tree(x, T1,T2) che data una chiave x e due alberi binari T1 e T2 restituisce un nuovo albero binario con radice x, sottoalbero sinistro T1 e sottoalbero destro T2. Dato un max-heap memorizzato in un array A[1..n], si sviluppi un algoritmo efficiente per costruire un BST T che contiene tutte le chiavi di A. Si dica quale è la complessità dell algoritmo e si dimostri la sua correttezza. Nota: Si osservi che non si richiede che T sia bilanciato. trasforma(a,n) if n>1 then root <- A[1] A[1] <- A[n] heapify(a,1,n-1) T1 <- trasforma(a,n-1) T2 <- tree_nil() return tree(root,t1,t2) else return tree_nil() Si tratta di una diversa formulazione dell algoritmo heapsort; la complessità si valuta in modo analogo ed è Θ(n lg n). Per la correttezza possiamo dimostrare che per ogni m 0 se A[1..m] è un max-heap allora trasforma(a,m) costruisce un albero BST che è in realta una catena a sinistra ordinata in ordine decrescente dalla radice alla foglia più a sinistra.
3 La correttezza è ovvia se m=0. Per m = n > 0, osserviamo che prima della chiamata ricorsiva A[1..(n-1)] contiene un max-heap e pertanto, per ipotesi induttiva, trasforma(a,n-1) costruisce un BST T1 che è una catena a sinistra e contiene tutte le chiavi di A[1..n-1]. Osservando poi che root è l elemento più grande di A[1..n] otteniamo il risultato. Esercizio 5 1) Si scriva lo pseudocodice di un algoritmo che dato un BST T restituisce il numero massimo di ripetizioni di una chiave in T. Esempio la risposta associata a / sarà 3 perchè la chiave 4 compare 3 volte, la chiave 5 due volte e la chiave 2 una sola volta. 2) (facoltativo) Si dimostri la correttezza dell algoritmo e se ne discuta la complessità. 1) maxripetizioni(t) x <-- root(t) if (x = NIL) then return 0 y <- BST_minimum(x) max_corsa <- 1 corsa <- 1 k <- key[y] z <- BST_successor[y] // max_corsa rappresenta il numero massimo di ripetizioni di una chiave // nella porzione di albero gi\ a visitata, k \ e l ultima chiave incontrata e // corsa \ e il numero delle sue ripetizioni gi\ a trovate. while (z =\= NIL) do if (k = key[z]) then corsa <- corsa + 1 else max_corsa <- max(max_corsa,corsa) corsa <- 1 k <- key[z] z <- successor[z] return max_corsa Esercizio 6 Si disegni un albero che contiene il seguente insieme di chiavi: { 12, 45, 4, 5, 18, 65, 23, 13, 11, 7, 48, 30, 25, 2, 6, 32, 33 } Si trasformi poi l albero in un albero R/B. L insieme ordinato è: { 2, 4, 5, 6, 7, 11, 12, 13, 18, 23, 25, 30, 32, 33, 45, 48, 65 } 18 ( 5, 11 ) ( 30, 45 ) / \ / \ ( 2, 4 ) ( 6, 7 ) ( 12, 13) ( 23, 25 ) ( 32, 33 ) ( 48, 65)
4 Esercizio 7 Diciamo che un albero binario è fortemente sbilanciato a destra se l altezza del suo sottoalbero destro è almeno il doppio di quella del suo sottoalbero sinistro. Si sviluppi un algoritmo ricorsivo che data la radice x di un albero binario T stampa tutte le radici dei sottoalberi di T che sono fortemente sbilanciati a destra. Un algoritmo efficiente restituirà anche l altezza del sottoalbero considerato sbilanciato(x) if (x = NIL) then return -1 h1 <- sbilanciato(left[x]) h2 <- sbilanciato(right[x]) if (h2 >= 2*h1) then write(x) return max(h1,h2)+1 Esercizio 8 Si consideri la struttura dati max-heap e si sviluppi un algoritmo efficiente (scrivere lo pseudo codice) che dato un max-heap memorizzato in un array A ed un indice i, 1 i heap size[a], incrementa A[i] di una quantità positiva k e restituisce un nuovo max-heap, ancora memorizzato in A. Discutere la complessità dell algoritmo proposto. Si tratta di realizzare l operazione increase key (vedi testo). Esercizio 9 Si consideri il seguente BST e si illustri il comportamento della funzione BST-delete applicata all albero considerato e al nodo con chiave / \ / Esercizio 10 Scrivere un algoritmo che dato un albero binario di ricerca T, rappresentato con gli attributi key, left, right, e due chiavi k 1 < k 2 restituisce true se e solo se T contiene almeno una chiave k con k 1 k k 2.
5 Definiamo l algoritmo verifica(x,k1,k2), dove x è un generico nodo dell albero, che verifica se la condizione è verificata nel sottoalbero radicato in x. Descrivere la complessità dell algoritmo proposto. verifica(x,k1,k2) if (x==nil) then return false if (key[x]=k1) then return true if (key[x]<k1) then return verifica(right[x],k1,k2) if (key[x]>k1 & key[x]<=k2) then return true if (key[x]>k1 & key[x]> k2) then return verifica(left[x],k1,k2) La complessità è lineare nell altezza dell albero. Esercizio 11 Si riporti il codice della versione ricorsiva dell algoritmo quicksort e si descrivano le proprietà che deve godere la procedura di partizione affinchè l algoritmo sia corretto. Vedi testo. Esercizio 12 Sia T un albero generale rappresentato associando ad ogni nodo n i campi key[n], figlio[n] e fratello[n], dove il campo key contiene numeri interi. Scrivere una funzione per contare il numero di nodi con chiave maggiore della chiave del padre. Prima soluzione. La chiamata esterna è Conta(root(T )). Conta(n) 1 k 0 2 if (n NIL) 3 then x figlio[n] 4 while (x NIL) 5 do if (key[x] > key[n]) 6 then k k k k + Conta(x) 8 x fratello[x] 9 return k Seconda soluzione. La chiamata esterna è Conta(root(T ), ). Conta(n, value) 1 if (n = NIL) 2 then return 0 3 else if key[n] > value 4 then return 1 + Conta(figlio[n], key[n]) + Conta(fratello[n], value) 5 else return Conta(figlio[n], key[n]) + Conta(fratello[n], value) Esercizio 13 Sia A[1,..., n], n 1, un array di numeri interi organizzato come un max-heap. Luca sostiene che il seguente ciclo while trasforma l array in un nuovo max-heap. Dovete dimostrare formalmente che Luca ha ragione trovando un opportuno invariante per il ciclo while. 1 i n 2 while (i 1) 3 do A [i] A[i] 1 4 i i 1
6 L invariante è: k (i < k n) = (A [k] è radice di un max-heap) (A [k] = A[k] 1) L assegnazione A [i] A[i] 1 lo preserva in quanto: (A[i] A[figlio[i]) = (A[i] 1 A[figlio(i)] 1). Esercizio 14 Disegnare un albero R/B che contiene le seguenti chiavi: 18,24,1,7,15,31,27,8,6,5. Aggiungere poi la chiave 10 simulando l operazione di inserimento in un albero binario di ricerca. Dire se l albero ottenuto colorando di rosso il nodo così inserito è ancora un albero R/B. Una possibile soluzione è: 15 B 6 B 24 B 5 B 8 B 18 B 31 B / / / 1 R 7 R 27 R ============================================================================== 15 B 6 B 24 B 5 B 8 B 18 B 31 B / / 1 R 7 R 10 R 27 R Esercizio 15 Quale è la complessità di una operazione di inserimento di una chiave in un B-albero con n chiavi, in funzione di n? Giustificare la risposta. Si consideri il seguente albero e lo si trasformi in un albero R/B. [ 8, 28 ] / \ [ 3 ] [ 10, 12, 20 ] [ 30, 40 ] / \ / \ [1] [4,6] [9] [11] [15,17,18] [22,25] [28] [31,37,39] [45,50] [8]N [3]N [28]R [1]N [6]N [12]N [30]N
7 N N [4]R N [10]R [20]R [28]N [40]R N N [9]N [11]N [17]N [22]N N N [37]N [45]N N N N N [15]R [18]R N [25]R [31]R [39]R N [50]R N N N N N N N N N N N N Esercizio 16 Si consideri la struttura dati albero generale i cui nodi hanno gli attributi: key, fratello, figlio e padre e si sviluppi un algoritmo per verificare se è soddisfatta la seguente proprietà speciale: key[padre[x]] > key[x], per ogni nodo x diverso dalla radice test_property(t) x <- root[t] return test(x) test(x) if (padre[x] == NIL) OR (key[padre[x] > key[x]) return (test(figlo[x]) AND test(fratello[x]) else return false Esercizio 17 Si sviluppi un algoritmo per calcolare il grado massimo dei nodi di un albero generale rappresentato tramite gli attributi: fratello, figlio e padre. (Ricordiamo che il grado di un nodo di un albero è pari al numero dei suoi figli.) Esercizio 18 Dire se il seguente albero binario di ricerca può essere colorato in modo da diventare un albero R/B. Giustificare la risposta. (Il simbolo * rappresenta la foglia-nil.) * * 1 5 * * * * * 7 * * Disegnare l albero che si ottiene applicando una rotazione destra alla radice dell albero precedente.
8 Esercizio 19 Scrivere lo pseudocodice per una funzione che, dato un albero binario di ricerca T contenente chiavi distinte, determina se la radice di T contiene l elemento mediano inferiore dell insieme delle chiavi contenute in T. DEF: l elemento mediano inferiore di un insieme di n elementi è l elemento che si trova in posizione (n + 1)/2 nella sequenza ordinata degli elementi dell insieme. Esempio: il mediano inferiore dell insieme {5, 1, 10, 2, 4} è 4 mentre il mediano inferiore dell insieme {9, 1, 5, 7, 8, 2} è 5. Si tratta di verificare se la differenza tra numero di nodi di left[root[t]] e di rigth[root[t]] è compresa tra -1 e 0. Esercizio Si elenchino tutte le operazioni definite sulla struttura dati albero binario di ricerca (BST), descrivendone le funzionalità. 2. Siano A un albero binario di ricerca contenente n interi e B un array contenente m interi. (a) Scrivere lo pseudo codice di una procedura efficiente per stampare in ordine non decrescente ( ) gli elementi dell insieme UNIONE degli elementi di A e di B. (b) Indicare la complessità della procedura in funzione di n ed m. 1. Si tratta di realizzare un algoritmo di merge degli elementi delle due strutture. x <- minimum(a); i <- 1; while (x =/= NIL) and (i <= m) do if (key[x] <= B[i] then stampa key[x]; x <- tree-successor(x) else stampa B[i]; i <- i+1 while (x =/= NIL) do stampa key[x]; x <- succ[x] while (i <= m) do stampa B[i]; i <- i+1 2. Si ricorda che la visita di un albero BST tramite la funzione tree-successor richiede un tempo lineare nel numero dei nodi dell albero. Poichè anche l array B viene percorsa linermente, la complessità totale è Θ(n + m). Esercizio 21 Sia T un albero R/B. Per ciascuna delle seguenti affermazioni dire se essa è vera o falsa. Giustificare la risposta. Per ogni nodo x di T, su ogni cammino da x ad una foglia esiste almeno un nodo nero. Per ogni nodo x di T, su ogni cammino da x alla radice esiste almeno un nodo rosso. Per ogni nodo x di T, su ogni cammino da x ad una foglia esiste lo stesso numero di nodi neri. Per ogni nodo x di T, su ogni cammino da x ad una foglia il numero dei nodi neri è almeno il doppio di quelli rossi. Per ogni nodo x di T, su ogni cammino da x ad una foglia il numero dei nodi neri è al più il doppio di quelli rossi.
9 Per ogni nodo x di T, su ogni cammino da x ad una foglia esiste almeno un nodo nero. VERA, la foglia è sempre nera Per ogni nodo x di T, su ogni cammino da x alla radice esiste almeno un nodo rosso. FALSA, potrebbero essere tutti neri. Per ogni nodo x di T, su ogni cammino da x ad una foglia esiste lo stesso numero di nodi neri. VERA, per la proprietà R/B. Per ogni nodo x di T, su ogni cammino da x ad una foglia il numero dei nodi neri è almeno il doppio di quelli rossi. FALSA, è sufficiente considerare un albero con 4 livelli ed i nodi così colorati: radice/nera; primo livello/rosso, secondo livello/nero, terzo livello/ rosso, quarto livello (foglie)/nero. Su ogni cammino vi sono due rossi e solo 3 neri. Per ogni nodo x di T, su ogni cammino da x ad una foglia il numero dei nodi neri è al più il doppio di quelli rossi. FALSA, si pensi ad un albero con solo nodi neri.
Esercizi Capitolo 6 - Alberi binari di ricerca
Esercizi Capitolo 6 - Alberi binari di ricerca Alberto Montresor 23 settembre 200 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore PDF lo consente, è possibile
Alberi binari di ricerca
Alberi binari di ricerca Definizione Visita dell albero inorder Ricerca Ricerca minimo, massimo e successore. Inserimento ed eliminazione di un nodo Problema del bilanciamento dell albero Albero binario
Algoritmi e Strutture Dati
Alberi Binari di Ricerca (BST) Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino A.A. 2006/07 Alberi Binari di Ricerca (Binary Search Trees BST)
4.1 Modelli di calcolo analisi asintotica e ricorrenze
4 Esercizi Prima Parte 4.1 Modelli di calcolo analisi asintotica e ricorrenze Esercizio 4 1 Rispondere alle seguenti domande: 1. Come misuriamo l efficienza di un algoritmo?. Quali sono gli algoritmi più
Algoritmi e Strutture Dati & Laboratorio di Algoritmi e Programmazione
Algoritmi e Strutture Dati & Laboratorio di Algoritmi e Programmazione Appello dell 8 Febbraio 2005 Esercizio 1 (ASD) 1. Dire quale delle seguenti affermazioni è vera giustificando la risposta. (a) lg
Esercizi per il corso di Algoritmi e Strutture Dati
1 Esercizi per il corso di Algoritmi e Strutture Dati Esercizi sulla Tecnica Divide et Impera N.B. Tutti gli algoritmi vanno scritti in pseudocodice (non in Java, né in C++, etc. ). Di tutti gli algoritmi
Algoritmi e Strutture Dati & Laboratorio di Algoritmi e Programmazione
Algoritmi e Strutture Dati & Laboratorio di Algoritmi e Programmazione Appello del 24 Gennaio 2007 Esercizio 1 (ASD) 1. Sia T (n) = T (n/6) + T (n/3) + Θ(n). Considerare ciascuna delle seguenti affermazioni
Esercizi Capitolo 5 - Alberi
Esercizi Capitolo 5 - Alberi Alberto Montresor 19 Agosto, 2014 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore PDF lo consente, è possibile saltare alle
COGNOME E NOME (IN STAMPATELLO) MATRICOLA
Politecnico di Milano Facoltà di Ingegneria dell Informazione Informatica 3 Proff. Ghezzi, Lanzi, Matera e Morzenti Seconda prova in itinere 4 Luglio 2005 COGNOME E NOME (IN STAMPATELLO) MATRICOLA Risolvere
Alberi auto-aggiustanti
Alberi auto-aggiustanti Dispensa didattica per il corso di Algoritmi e Strutture Dati a.a. 2007/2008 ver. 1.3 Ing. Claudio Mazzariello, Prof. Carlo Sansone 27 Maggio 2008 A differenza di altre possibili
Sono casi particolari di MCF : SPT (cammini minimi) non vi sono vincoli di capacità superiore (solo x ij > 0) (i, j) A : c ij, costo di percorrenza
Il problema di flusso di costo minimo (MCF) Dati : grafo orientato G = ( N, A ) i N, deficit del nodo i : b i (i, j) A u ij, capacità superiore (max quantità di flusso che può transitare) c ij, costo di
B-Tree. Struttura dati usata in applicazioni che necessitano di gestire insiemi di chiavi ordinate Una variante (B+-Tree) è diffusa in:
B-Tree Prof. Rudolf Bayer Struttura dati usata in applicazioni che necessitano di gestire insiemi di chiavi ordinate Una variante (B+-Tree) è diffusa in: Filesystem: btrfs, NTFS, ReiserFS, NSS, XFS, JFS
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati Soluzione esercizi di approfondimento Stefano Leucci [email protected] Una terza variante dell IS InsertionSort3 (A) 1. for k=1 to n-1 do 2. x = A[k+1] 3. j = ricerca_binaria(a[1,k],x)
Alberi binari. Ilaria Castelli [email protected] A.A. 2009/2010. Università degli Studi di Siena Dipartimento di Ingegneria dell Informazione
Alberi binari Ilaria Castelli [email protected] Università degli Studi di Siena Dipartimento di Ingegneria dell Informazione A.A. 2009/2010 I. Castelli Alberi binari, A.A. 2009/2010 1/20 Alberi binari
Appunti di Algoritmi e Strutture Dati. Grafi. Gianfranco Gallizia
Appunti di Algoritmi e Strutture Dati Grafi Gianfranco Gallizia 12 Dicembre 2004 2 Indice 1 Grafi 5 1.1 Definizione.............................. 5 1.2 Implementazione........................... 5 1.2.1
Programmazione dinamica
Capitolo 6 Programmazione dinamica 6.4 Il problema della distanza di edit tra due stringhe x e y chiede di calcolare il minimo numero di operazioni su singoli caratteri (inserimento, cancellazione e sostituzione)
Algoritmi di Ricerca. Esempi di programmi Java
Fondamenti di Informatica Algoritmi di Ricerca Esempi di programmi Java Fondamenti di Informatica - D. Talia - UNICAL 1 Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare
B+Trees. Introduzione
B+Trees Introduzione B+Trees Il B+Trees e la variante maggiormente utilizzata dei BTrees BTrees e B+trees fanno parte della famiglia degli alberi di ricerca. Nel B+Trees i dati sono memorizzati solo nelle
Algoritmi e strutture dati. Codici di Huffman
Algoritmi e strutture dati Codici di Huffman Memorizzazione dei dati Quando un file viene memorizzato, esso va memorizzato in qualche formato binario Modo più semplice: memorizzare il codice ASCII per
Corso di Algoritmi e Strutture Dati Informatica per il Management Prova Scritta, 25/6/2015
Corso di Algoritmi e Strutture Dati Informatica per il Management Prova Scritta, 25/6/2015 Chi deve recuperare il progetto del modulo 1 ha 1 ora e 30 minuti per svolgere gli esercizi 1, 2, 3 Chi deve recuperare
16.3.1 Alberi binari di ricerca
442 CAPITOLO 16. STRUTTURE DI DATI DINAMICHE root 7 5 11 2 8 13 10 Figura 16.11 Esempio di albero binario: ogni nodo contiene il dato da immagazzinare e tre puntatori che definiscono le sue relazioni di
Due algoritmi di ordinamento. basati sulla tecnica Divide et Impera: Mergesort e Quicksort
Due algoritmi di ordinamento basati sulla tecnica Divide et Impera: Mergesort e Quicksort (13 ottobre 2009, 2 novembre 2010) Ordinamento INPUT: un insieme di n oggetti a 1, a 2,, a n presi da un dominio
Definire all'interno del codice un vettore di interi di dimensione DIM, es. int array[] = {1, 5, 2, 4, 8, 1, 1, 9, 11, 4, 12};
ESERCIZI 2 LABORATORIO Problema 1 Definire all'interno del codice un vettore di interi di dimensione DIM, es. int array[] = {1, 5, 2, 4, 8, 1, 1, 9, 11, 4, 12}; Chiede all'utente un numero e, tramite ricerca
( x) ( x) 0. Equazioni irrazionali
Equazioni irrazionali Definizione: si definisce equazione irrazionale un equazione in cui compaiono uno o più radicali contenenti l incognita. Esempio 7 Ricordiamo quanto visto sulle condizioni di esistenza
Lezione 8. La macchina universale
Lezione 8 Algoritmi La macchina universale Un elaboratore o computer è una macchina digitale, elettronica, automatica capace di effettuare trasformazioni o elaborazioni su i dati digitale= l informazione
La struttura dati ad albero binario
La struttura dati ad albero binario L albero è una struttura dati nella quale le informazioni sono organizzate in modo gerarchico, dall alto verso il basso. Gli elementi di un albero si chiamano nodi,
Fondamenti dell Informatica Ricorsione e Iterazione Simona Ronchi Della Rocca (dal testo: Kfoury, Moll and Arbib, cap.5.2)
Fondamenti dell Informatica Ricorsione e Iterazione Simona Ronchi Della Rocca (dal testo: Kfoury, Moll and Arbib, cap.5.2) Definiamo innanzitutto una relazione d ordine tra le funzioni. Siano φ e ψ funzioni
Traccia di soluzione dell esercizio del 25/1/2005
Traccia di soluzione dell esercizio del 25/1/2005 1 Casi d uso I casi d uso sono in Figura 1. Ci sono solo due attori: il Capo officina e il generico Meccanico. Figura 1: Diagramma dei casi d uso. 2 Modello
Informatica 3. LEZIONE 23: Indicizzazione. Modulo 1: Indicizzazione lineare, ISAM e ad albero Modulo 2: 2-3 trees, B-trees e B + -trees
Informatica 3 LEZIONE 23: Indicizzazione Modulo 1: Indicizzazione lineare, ISAM e ad albero Modulo 2: 2-3 trees, B-trees e B + -trees Informatica 3 Lezione 23 - Modulo 1 Indicizzazione lineare, ISAM e
Algebra di Boole ed Elementi di Logica
Algebra di Boole ed Elementi di Logica 53 Cenni all algebra di Boole L algebra di Boole (inventata da G. Boole, britannico, seconda metà 8), o algebra della logica, si basa su operazioni logiche Le operazioni
Prof. Giuseppe Chiumeo. Avete già studiato che qualsiasi algoritmo appropriato può essere scritto utilizzando soltanto tre strutture di base:
LA STRUTTURA DI RIPETIZIONE La ripetizione POST-condizionale La ripetizione PRE-condizionale INTRODUZIONE (1/3) Avete già studiato che qualsiasi algoritmo appropriato può essere scritto utilizzando soltanto
Laboratorio di architettura degli elaboratori Progetto finale AA 2005/2006
Laboratorio di architettura degli elaboratori Progetto finale AA 2005/2006 Esercizio 1 - Heapsort Si consideri la seguente struttura dati, chiamata heap. Essa è un albero binario semi-completo (ossia un
STRUTTURE NON LINEARI
PR1 Lezione 13: STRUTTURE NON LINEARI Michele Nappi [email protected] www.dmi.unisa.it/people/nappi Per la realizzazione della presentazione è stato utilizzato in parte materiale didattico prodotto da Oronzo
f(x) = 1 x. Il dominio di questa funzione è il sottoinsieme proprio di R dato da
Data una funzione reale f di variabile reale x, definita su un sottoinsieme proprio D f di R (con questo voglio dire che il dominio di f è un sottoinsieme di R che non coincide con tutto R), ci si chiede
1 Applicazioni Lineari tra Spazi Vettoriali
1 Applicazioni Lineari tra Spazi Vettoriali Definizione 1 (Applicazioni lineari) Si chiama applicazione lineare una applicazione tra uno spazio vettoriale ed uno spazio vettoriale sul campo tale che "!$%!
risulta (x) = 1 se x < 0.
Questo file si pone come obiettivo quello di mostrarvi come lo studio di una funzione reale di una variabile reale, nella cui espressione compare un qualche valore assoluto, possa essere svolto senza necessariamente
MATEMATICA DEL DISCRETO elementi di teoria dei grafi. anno acc. 2009/2010
elementi di teoria dei grafi anno acc. 2009/2010 Grafi semplici Un grafo semplice G è una coppia ordinata (V(G), L(G)), ove V(G) è un insieme finito e non vuoto di elementi detti vertici o nodi di G, mentre
LE FUNZIONI A DUE VARIABILI
Capitolo I LE FUNZIONI A DUE VARIABILI In questo primo capitolo introduciamo alcune definizioni di base delle funzioni reali a due variabili reali. Nel seguito R denoterà l insieme dei numeri reali mentre
Semantica Assiomatica
Semantica Assiomatica Anche nella semantica assiomatica, così come in quella operazionale, il significato associato ad un comando C viene definito specificando la transizione tra stati (a partire, cioè,
4. Operazioni elementari per righe e colonne
4. Operazioni elementari per righe e colonne Sia K un campo, e sia A una matrice m n a elementi in K. Una operazione elementare per righe sulla matrice A è una operazione di uno dei seguenti tre tipi:
Matematica generale CTF
Successioni numeriche 19 agosto 2015 Definizione di successione Monotonìa e limitatezza Forme indeterminate Successioni infinitesime Comportamento asintotico Criterio del rapporto per le successioni Definizione
2 FUNZIONI REALI DI VARIABILE REALE
2 FUNZIONI REALI DI VARIABILE REALE 2.1 CONCETTO DI FUNZIONE Definizione 2.1 Siano A e B due insiemi. Una funzione (o applicazione) f con dominio A a valori in B è una legge che associa ad ogni elemento
Esercizi Capitolo 2 - Analisi di Algoritmi
Esercizi Capitolo - Analisi di Algoritmi Alberto Montresor 19 Agosto, 014 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore PDF lo consente, è possibile saltare
Descrizione di un algoritmo
Descrizione di un algoritmo Un algoritmo descrive due tipi fondamentali di oper: calcoli ottenibili tramite le oper primitive su tipi di dato (valutazione di espressioni) che consistono nella modifica
Soluzione dell esercizio del 2 Febbraio 2004
Soluzione dell esercizio del 2 Febbraio 2004 1. Casi d uso I casi d uso sono riportati in Figura 1. Figura 1: Diagramma dei casi d uso. E evidenziato un sotto caso di uso. 2. Modello concettuale Osserviamo
Raccolta degli Scritti d Esame di ANALISI MATEMATICA U.D. 1 assegnati nei Corsi di Laurea di Fisica, Fisica Applicata, Matematica
DIPARTIMENTO DI MATEMATICA Università degli Studi di Trento Via Sommarive - Povo (TRENTO) Raccolta degli Scritti d Esame di ANALISI MATEMATICA U.D. 1 assegnati nei Corsi di Laurea di Fisica, Fisica Applicata,
Soluzione di equazioni quadratiche
Soluzione di equazioni quadratiche Soluzione sulla Retta Algebrica Inseriamo sulla Retta Algebrica le seguenti espressioni polinomiali x e x 3 e cerchiamo di individuare i valori di x per i quali i punti
Introduzione al MATLAB c Parte 2
Introduzione al MATLAB c Parte 2 Lucia Gastaldi Dipartimento di Matematica, http://dm.ing.unibs.it/gastaldi/ 18 gennaio 2008 Outline 1 M-file di tipo Script e Function Script Function 2 Costrutti di programmazione
LISTE, INSIEMI, ALBERI E RICORSIONE
LISTE, INSIEMI, ALBERI E RICORSIONE Settimo Laboratorio LISTE E RICORSIONE SVUOTALISTA: CONSIDERAZIONI Per svuotare una lista si devono eliminare i singoli nodi allocati con la malloc... Come fare? Per
10. Insiemi non misurabili secondo Lebesgue.
10. Insiemi non misurabili secondo Lebesgue. Lo scopo principale di questo capitolo è quello di far vedere che esistono sottoinsiemi di R h che non sono misurabili secondo Lebesgue. La costruzione di insiemi
PROBLEMA DELLA RICERCA DI UN ELEMENTO IN UN ARRAY E ALGORITMI RISOLUTIVI
PROBLEMA DELLA RICERCA DI UN ELEMENTO IN UN ARRAY E ALGORITMI RISOLUTIVI PROBLEMA DELLA RICERCA in termini generali: Dati in input un insieme S di elementi (numeri, caratteri, stringhe, ) e un elemento
RAPPRESENTAZIONE GRAFICA E ANALISI DEI DATI SPERIMENTALI CON EXCEL
RAPPRESENTAZIONE GRAFICA E ANALISI DEI DATI SPERIMENTALI CON EXCEL 1 RAPPRESENTAZIONE GRAFICA Per l analisi dati con Excel si fa riferimento alla versione 2007 di Office, le versioni successive non differiscono
Complessità Computazionale
Complessità Computazionale Analisi Algoritmi e pseudocodice Cosa significa analizzare un algoritmo Modello di calcolo Analisi del caso peggiore e del caso medio Esempio di algoritmo in pseudocodice INSERTION
Teoria in sintesi 10. Attività di sportello 1, 24 - Attività di sportello 2, 24 - Verifica conclusiva, 25. Teoria in sintesi 26
Indice L attività di recupero 6 Funzioni Teoria in sintesi 0 Obiettivo Ricerca del dominio e del codominio di funzioni note Obiettivo Ricerca del dominio di funzioni algebriche; scrittura del dominio Obiettivo
Plate Locator Riconoscimento Automatico di Targhe
Progetto per Laboratorio di Informatica 3 - Rimotti Daniele, Santinelli Gabriele Plate Locator Riconoscimento Automatico di Targhe Il programma plate_locator.m prende come input: l immagine della targa
LEZIONE 7. Esercizio 7.1. Quale delle seguenti funzioni è decrescente in ( 3, 0) e ha derivata prima in 3 che vale 0? x 3 3 + x2. 2, x3 +2x +3.
7 LEZIONE 7 Esercizio 7.1. Quale delle seguenti funzioni è decrescente in ( 3, 0) e ha derivata prima in 3 che vale 0? x 3 3 + x2 2 6x, x3 +2x 2 6x, 3x + x2 2, x3 +2x +3. Le derivate sono rispettivamente,
4 3 4 = 4 x 10 2 + 3 x 10 1 + 4 x 10 0 aaa 10 2 10 1 10 0
Rappresentazione dei numeri I numeri che siamo abituati ad utilizzare sono espressi utilizzando il sistema di numerazione decimale, che si chiama così perché utilizza 0 cifre (0,,2,3,4,5,6,7,8,9). Si dice
Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati
Algoritmi Algoritmi Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati Il procedimento (chiamato algoritmo) è composto da passi elementari
Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto:
Tipi primitivi Il linguaggio Java offre alcuni tipi di dato primitivi Una variabile di tipo primitivo può essere utilizzata direttamente. Non è un riferimento e non ha senso tentare di istanziarla mediante
Metodi e Modelli per l Ottimizzazione Combinatoria Il problema del flusso di costo minimo
Metodi e Modelli per l Ottimizzazione Combinatoria Il problema del flusso di costo minimo L. De Giovanni G. Zambelli 1 Problema del flusso a costo minimo Il problema del flusso a costo minimo é definito
AA 2006-07 LA RICORSIONE
PROGRAMMAZIONE AA 2006-07 LA RICORSIONE AA 2006-07 Prof.ssa A. Lanza - DIB 1/18 LA RICORSIONE Il concetto di ricorsione nasce dalla matematica Una funzione matematica è definita ricorsivamente quando nella
Alberi binari di ricerca
Alberi binari di ricerca Ilaria Castelli [email protected] Università degli Studi di Siena Dipartimento di Ingegneria dell Informazione A.A. 2009/20010 I. Castelli Alberi binari di ricerca, A.A. 2009/20010
RICORSIVITA. Vediamo come si programma la soluzione ricorsiva al problema precedente: Poniamo S 1 =1 S 2 =1+2 S 3 =1+2+3
RICORSIVITA 1. Cos è la ricorsività? La ricorsività è un metodo di soluzione dei problemi che consiste nell esprimere la soluzione relativa al caso n in funzione della soluzione relativa al caso n-1. La
Capitolo 5. Funzioni. Grafici.
Capitolo 5 Funzioni. Grafici. Definizione: Una funzione f di una variabile reale,, è una corrispondenza che associa ad ogni numero reale appartenente ad un insieme D f R un unico numero reale, y R, denotato
la funzione è definita la funzione non è definita Si osservi, infatti, che la radice di un numero negativo non esiste nel campo dei numeri reali.
1 y 4 CAMPO DI ESISTENZA. Poiché data è una irrazionale con indice di radice pari, il cui radicando è un polinomio, essa risulta definita solo per i valori della per i quali il radicando è positivo, ovvero
Informatica 3. Informatica 3. LEZIONE 10: Introduzione agli algoritmi e alle strutture dati. Lezione 10 - Modulo 1. Importanza delle strutture dati
Informatica 3 Informatica 3 LEZIONE 10: Introduzione agli algoritmi e alle strutture dati Modulo 1: Perchè studiare algoritmi e strutture dati Modulo 2: Definizioni di base Lezione 10 - Modulo 1 Perchè
Tricks & Tips. [Access] Tutorial - ActiveX - Controllo Tree View. - Michele de Nittis - Versione: 1 Data Versione: venerdì 30 agosto 2002
Tricks & Tips [Access] - Michele de Nittis - Tutorial - ActiveX - Controllo Tree View Versione: 1 Data Versione: venerdì 30 agosto 2002 1 SOMMARIO PREMESSA...3 INSERIMENTO DEL CONTROLLO...3 AGGIUNTA DELLE
Proof. Dimostrazione per assurdo. Consideriamo l insieme complementare di P nell insieme
G Pareschi Principio di induzione Il Principio di Induzione (che dovreste anche avere incontrato nel Corso di Analisi I) consente di dimostrare Proposizioni il cui enunciato è in funzione di un numero
Iniziamo con un esercizio sul massimo comun divisore: Esercizio 1. Sia d = G.C.D.(a, b), allora:
Iniziamo con un esercizio sul massimo comun divisore: Esercizio 1. Sia d = G.C.D.(a, b), allora: G.C.D.( a d, b d ) = 1 Sono state introdotte a lezione due definizioni importanti che ricordiamo: Definizione
Quando A e B coincidono una coppia ordinata é determinata anche dalla loro posizione.
Grafi ed Alberi Pag. /26 Grafi ed Alberi In questo capitolo richiameremo i principali concetti di due ADT che ricorreranno puntualmente nel corso della nostra trattazione: i grafi e gli alberi. Naturale
Algebra Booleana ed Espressioni Booleane
Algebra Booleana ed Espressioni Booleane Che cosa è un Algebra? Dato un insieme E di elementi (qualsiasi, non necessariamente numerico) ed una o più operazioni definite sugli elementi appartenenti a tale
Architettura (10/9/2003) Pag. 1/6. Cognome e Nome (in stampatello):
Architettura (10/9003) Pag. 1/6 Esame di Architettura (matr.0-1) del 10/9003 Per Fondamenti di Architettura NON rispondere Per le domande a risposta multipla cerchiare la risposta scelta. Non alle domande
Parte 1. Vettori di bit - AA. 2012/13 1.1
1.1 Parte 1 Vettori di bit 1.2 Notazione posizionale Ogni cifra assume un significato diverso a seconda della posizione in cui si trova Rappresentazione di un numero su n cifre in base b: Posizioni a n
Calcolare il massimo di una lista
Calcolare il massimo di una lista Ieri abbiamo imparato a calcolare il massimo di una lista predefinita: lista = [4,24,-89,81,3,0,-12,31] max = lista[0] # questo e' un commento: primo elemento di lista
Schemi delle Lezioni di Matematica Generale. Pierpaolo Montana
Schemi delle Lezioni di Matematica Generale Pierpaolo Montana Al-giabr wa al-mukabalah di Al Khuwarizmi scritto approssimativamente nel 820 D.C. Manuale arabo da cui deriviamo due nomi: Algebra Algoritmo
Un metodo per il rilevamento degli errori: la tecnica del Bit di Parità
Appunti: Tecniche di rilevazione e correzione degli errori 1 Tecniche di correzione degli errori Le tecniche di correzione degli errori sono catalogabili in: metodi per il rilevamento degli errori; metodi
Protocollo di tracciamento e valutazione degli studenti dei corsi di italiano ICoNLingua A.A. 2013-2014
Progetto ICoNLingua Scienza senza Frontiere CsF- Italia Protocollo di tracciamento e valutazione degli studenti dei corsi di italiano ICoNLingua A.A. 2013-2014 1. Introduzione La valutazione sia in itinere
Gli algoritmi: definizioni e proprietà
Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Gli algoritmi: definizioni e proprietà La presente dispensa e da
Ricerca binaria. Operazione dominante: confronto
procedure ordinaperfusioni(var a: nelements; n: integer); var b: nelements; procedure mergesort(var a,b: nelements; primo,ultimo:integer); var q: integer; procedure merge(var a,b: nelements; primo, ultimo,
Interpolazione ed approssimazione di funzioni
Interpolazione ed approssimazione di funzioni Lucia Gastaldi Dipartimento di Matematica, http://dm.ing.unibs.it/gastaldi/ 9 novembre 2007 Outline 1 Polinomi Valutazione di un polinomio Algoritmo di Horner
Funzioni. Parte prima. Daniele Serra
Funzioni Parte prima Daniele Serra Nota: questi appunti non sostituiscono in alcun modo le lezioni del prof. Favilli, né alcun libro di testo. Sono piuttosto da intendersi a integrazione di entrambi. 1
Si basano sul seguente Teorema: S = A sse S { A} è insoddisfacibile.
Deduzione automatica La maggior parte dei metodi di deduzione automatica sono metodi di refutazione: anziché dimostrare direttamente che S A, si dimostra che S { A} è un insieme insoddisfacibile (cioè
Per studio di funzione intendiamo un insieme di procedure che hanno lo scopo di analizzare le proprietà di una funzione f ( x) R R
Studio di funzione Per studio di funzione intendiamo un insieme di procedure che hanno lo scopo di analizzare le proprietà di una funzione f ( x) R R : allo scopo di determinarne le caratteristiche principali.
ESEMPI DI QUERY SQL. Esempi di Query SQL Michele Batocchi AS 2012/2013 Pagina 1 di 7
ESEMPI DI QUERY SQL Dati di esempio... 2 Query su una sola tabella... 2 Esempio 1 (Ordinamento)... 2 Esempio 2 (Scelta di alcune colonne)... 3 Esempio 3 (Condizioni sui dati)... 3 Esempio 4 (Condizioni
GESTIONE INFORMATICA DEI DATI AZIENDALI
GESTIONE INFORMATICA DEI DATI AZIENDALI Alberto ZANONI Centro Vito Volterra Università Tor Vergata Via Columbia 2, 00133 Roma, Italy [email protected] Rudimenti di programmazione Programming
DI D AGRA R MM M I M A BLOCC C H C I TEORI R A E D D E SERC R I C ZI 1 1
DIAGRAMMI A BLOCCHI TEORIA ED ESERCIZI 1 1 Il linguaggio dei diagrammi a blocchi è un possibile formalismo per la descrizione di algoritmi Il diagramma a blocchi, o flowchart, è una rappresentazione grafica
CONTINUITÀ E DERIVABILITÀ Esercizi proposti. 1. Determinare lim M(sinx) (M(t) denota la mantissa di t)
CONTINUITÀ E DERIVABILITÀ Esercizi proposti 1. Determinare lim M(sin) (M(t) denota la mantissa di t) kπ/ al variare di k in Z. Ove tale limite non esista, discutere l esistenza dei limiti laterali. Identificare
Corso di Tecniche di Programmazione
Corso di Tecniche di Programmazione Corsi di Laurea in Ingegneria Informatica ed Automatica Anno Accedemico 003/004 Proff. Giuseppe De Giacomo, Luca Iocchi, Domenico Lembo Dispensa : Algoritmi di Ordinamento
Anno 5 4. Funzioni reali: il dominio
Anno 5 4 Funzioni reali: il dominio 1 Introduzione In questa lezione impareremo a definire cos è una funzione reale di variabile reale e a ricercarne il dominio. Al termine di questa lezione sarai in grado
Laboratorio di Algoritmi e Strutture Dati
Laboratorio di Algoritmi e Strutture Dati Docente: Camillo Fiorentini 18 dicembre 2007 Esercizio 1: rappresentazione di una tabella di occorrenze L obiettivo è quello di rappresentare in modo efficiente
ALGEBRA DELLE PROPOSIZIONI
Università di Salerno Fondamenti di Informatica Corso di Laurea Ingegneria Corso B Docente: Ing. Giovanni Secondulfo Anno Accademico 2010-2011 ALGEBRA DELLE PROPOSIZIONI Fondamenti di Informatica Algebra
Logica Numerica Approfondimento 1. Minimo Comune Multiplo e Massimo Comun Divisore. Il concetto di multiplo e di divisore. Il Minimo Comune Multiplo
Logica Numerica Approfondimento E. Barbuto Minimo Comune Multiplo e Massimo Comun Divisore Il concetto di multiplo e di divisore Considerato un numero intero n, se esso viene moltiplicato per un numero
