Fondamenti di informatica: pacchetto last-minute

Formulari, i passaggi chiave del metodo per ogni argomento e 20 esercizi, con le soluzioni complete in fondo.

Nuovi eserciziTorna al corso

Nella finestra di stampa scegli “Salva come PDF” per conservarne una copia sul tuo dispositivo.

1Formule e metodi

Sistemi di numerazione

Pesi delle posizioni
binario 2k, ottale 8k, esadecimale 16k
In decimale
Σ dk·bk
Da decimale
dividi per la base e leggi i resti dal basso verso l’alto
Esadecimale ↔ binario
una cifra esadecimale = 4 bit
Complemento a due
inverti i bit e aggiungi 1

Logica proposizionale e dimostrazioni

Righe di una tabella di verità
2ⁿ
Implicazione
p → q ≡ ¬p ∨ q ≡ ¬q → ¬p
Implicazione negata
¬(p → q) ≡ p ∧ ¬q
Doppia implicazione
p ↔ q ≡ (p → q) ∧ (q → p)
De Morgan
¬(p ∧ q) ≡ ¬p ∨ ¬q, ¬(p ∨ q) ≡ ¬p ∧ ¬q
Leggi distributive
p ∨ (q ∧ r) ≡ (p ∨ q) ∧ (p ∨ r), p ∧ (q ∨ r) ≡ (p ∧ q) ∨ (p ∧ r)
Quantificatori negati
¬∀x P(x) ≡ ∃x ¬P(x), ¬∃x P(x) ≡ ∀x ¬P(x)
Modus ponens, modus tollens
p → q, p ⊢ q; p → q, ¬q ⊢ ¬p

Metodo

  1. Conta le variabili distinte: la tabella di verità ha 2ⁿ righe, e la prima ha tutti i valori a 1.
  2. Assegna a ogni sottoformula una colonna propria e compila le colonne dall’interno verso l’esterno.
  3. Applica la regola di ogni connettivo: → vale 0 solo per 1 → 0, ↔ vale 1 quando i due lati coincidono.
  4. Per le equivalenze, confronta riga per riga le colonne finali; per un argomento, guarda solo le righe in cui ogni premessa vale 1.
  5. Per negare un enunciato quantificato, sposta ¬ verso l’interno, scambia ∀ e ∃ e nega la formula interna.

Logica digitale: porte, mappe K e flip-flop

Porte di base
A·B, A + B, A′, (A·B)′, (A + B)′, A ⊕ B
Regole booleane
X + X′ = 1, X·X′ = 0, X + XY = X, XY + XY′ = X
De Morgan
(X·Y)′ = X′ + Y′, (X + Y)′ = X′·Y′
Ordine della mappa di Karnaugh
00, 01, 11, 10 (Gray code)
Gruppo di 2ᵏ celle
perde k variabili
Multiplexer 4 a 1
F = A′B′I0 + A′BI1 + AB′I2 + ABI3
Flip-flop
D: Q⁺ = D, T: Q⁺ = T ⊕ Q, JK: Q⁺ = JQ′ + K′Q
Contatori
n bit: 2ⁿ stati; mod N: n minimo con 2ⁿ ≥ N; fout = fclk/N
Contatore asincrono (ripple)
fmax = 1/(n·tpd)
Contatori ad anello e Johnson
n e 2n stati

Metodo

  1. Per un circuito, procedi dagli ingressi all’uscita una porta alla volta e scrivi il valore su ogni filo, oppure scrivi la sua espressione e compila la tabella di verità.
  2. Per la semplificazione, riporta gli 1 (e le condizioni di indifferenza come X) in una mappa di Karnaugh con righe e colonne in codice Gray: 00, 01, 11, 10.
  3. Copri gli 1 con il minor numero possibile di gruppi, i più grandi possibile, di 1, 2, 4, 8 o 16 celle, richiudendoli sui bordi; ogni gruppo è un termine prodotto formato dalle variabili che restano costanti. Raggruppa gli 0 per la forma POS.
  4. Per flip-flop e contatori, leggi gli ingressi a ogni fronte attivo del clock, scrivi lo stato dopo ogni fronte e ricorda che un contatore a n bit ricomincia da capo dopo 2ⁿ stati.

Teoria dei numeri e aritmetica modulare

Divisione con resto
a = q·n + r, 0 ≤ r < n
Euclide
gcd(a, b) = gcd(b, a mod b)
Minimo comune multiplo
lcm(a, b) = a·b/gcd(a, b)
Inversa
a·a⁻¹ ≡ 1 (mod n), gcd(a, n) = 1
Congruenza lineare
a·x ≡ b → x ≡ a⁻¹·b (mod n)
Funzione φ di Eulero
φ(n) = n·∏(1 − 1/p), φ(pᵏ) = pᵏ − pᵏ⁻¹
Fermat
aᵖ⁻¹ ≡ 1 (mod p)
RSA
n = pq, φ = (p − 1)(q − 1), d = e⁻¹ mod φ, c = mᵉ mod n, m = cᵈ mod n

Metodo

  1. Riduci prima ogni numero modulo n; i resti sono compresi tra 0 e n − 1.
  2. Per un MCD, dividi ripetutamente con l’algoritmo di Euclide; l’ultimo resto diverso da zero è il MCD.
  3. Per un inverso, esegui l’algoritmo esteso e tieni il coefficiente di a; aggiungi n se è negativo.
  4. Risolvi a·x ≡ b moltiplicando per a⁻¹; combina due congruenze scrivendo x = r₁ + m₁k.
  5. Per le potenze, scrivi l’esponente in binario ed eleva al quadrato ripetutamente; in RSA, d = e⁻¹ mod φ(n) con φ(n) = (p − 1)(q − 1).

Teoria dei grafi

Lemma delle strette di mano
Σ deg(v) = 2|E|
Grafi completi
|E(Kn)| = n(n − 1)/2, |E(Km,n)| = m·n
Grafo regolare
|E| = n·k/2
Albero e foresta
|E| = n − 1, |E| = n − c
Foglie di un albero
L = 2 + Σ (deg(v) − 2) over deg(v) ≥ 3
Eulero
circuito: tutti i gradi pari; cammino: esattamente 2 gradi dispari
Cicli hamiltoniani in Kn
(n − 1)!/2
Aggiornamento di Dijkstra
d(v) = min(d(v), d(u) + w(u, v))
Cammini di lunghezza L
(Mᴸ)ij

Metodo

  1. Scrivi il grado di ogni vertice; la somma dei gradi è il doppio del numero di lati.
  2. Nelle domande su Eulero, verifica che il grafo sia connesso e conta i vertici di grado dispari.
  3. Per gli alberi, usa n − 1 lati e il lemma delle strette di mano.
  4. Per Dijkstra, tieni una tabella delle distanze provvisorie e a ogni passo fissa il vertice non ancora fissato con la distanza minima.
  5. Per un albero di copertura minimo, ordina i lati per peso e salta ogni lato che chiude un ciclo (Kruskal), oppure fai crescere un solo albero a partire da un vertice iniziale (Prim).

Sottoreti IPv4

Host per sottorete
2(32 − prefix) − 2 (/31: 2, /32: 1)
Dimensione del blocco
256 − (mask octet)
Indirizzo di rete
IP AND maschera
Indirizzo di broadcast
IP OR (NOT maschera): tutti i bit di host a 1
Sottoreti da n bit presi in prestito
2n

2Esercizi

1.Sistemi di numerazioneMedia
complemento a due a 8 bit0−12806403201608040201

Imposta i bit in modo che memorizzino −13 in complemento a due a 8 bit. Letto come numero senza segno, qual è il valore U dello schema?

N = −138 bit
U =
2.Sistemi di numerazioneDifficile
clicca i bit per impostarli012806403201608040201

Imposta i bit sul risultato a 8 bit di 0110 1101 << 2. Qual è il valore R del risultato in decimale?

0110 1101<< 2
R =
3.Logica proposizionale e dimostrazioniMedia
pqrq → r(p ∧ (q ∧ r)) ∧ (q → r)¬((p ∧ (q ∧ r)) ∧ (q → r))111?110?101?100?011?010?001?000?

In quante delle 8 righe della sua tabella di verità ¬((p ∧ (q ∧ r)) ∧ (q → r)) è vera? Chiama questo numero N.

¬((p ∧ (q ∧ r)) ∧ (q → r))
N =
4.Logica proposizionale e dimostrazioniDifficile
¬rqr¬r ∧ q

Sono date le premesse r → p; p → q; ¬q. Quale conclusione ne segue? Clicca su di essa.

r → pp → q¬q
  1. 1¬r
  2. 2q
  3. 3r
  4. 4¬r ∧ q
5.Logica digitale: porte, mappe K e flip-flopMedia
MUXC′I0​1I1​1I2​0I3​ABS1​S0​F

Un multiplexer 4 a 1 ha gli ingressi di selezione S₁ = A e S₀ = B, e gli ingressi dati collegati a I₀ = C′, I₁ = 1, I₂ = 1, I₃ = 0. Per quante delle 8 combinazioni di A, B e C l’uscita è F = 1? Trova N.

I₀ = C′I₁ = 1I₂ = 1I₃ = 0
N =
6.Logica digitale: porte, mappe K e flip-flopDifficile
ABCD0001111000011110X001131214150716012113X150141809011110

Trova la forma SOP minima di F(A, B, C, D) = Σm(2, 3, 4, 5, 6, 8, 10, 13) + d(0, 15), dove d indica le condizioni di indifferenza. Quanti letterali L contiene?

F(A, B, C, D) = Σm(2, 3, 4, 5, 6, 8, 10, 13) + d(0, 15)
L =
7.Teoria dei numeri e aritmetica modulareMedia

Risolvi 33x ≡ 60 (mod 61). Dai la soluzione x con 0 < x < 61.

33x ≡ 60 (mod 61)
x =
8.Teoria dei numeri e aritmetica modulareDifficile
mc = me​ mod n124m = cd​ mod n?(n, e) = (1739, 17)d

Una chiave RSA usa p = 37, q = 47 ed e = 17. Decifra il testo cifrato c = 124: trova il messaggio m.

p = 37q = 47e = 17c = 124
m =
9.Algoritmi e complessitàMedia

La visita in ampiezza (BFS) su un grafo non pesato trova:

  1. AL'albero ricoprente minimo
  2. BI cammini minimi in grafi che contengono archi con peso negativo
  3. CUn ordinamento topologico in tutti i grafi
  4. DI cammini minimi in numero di archi dal nodo di partenza
10.Algoritmi e complessitàDifficile

Quali sono i costi in tempo e spazio del calcolo dell'n-esimo numero di Fibonacci con un ciclo che conserva solo gli ultimi due valori?

  1. ATempo O(n) e spazio O(n)
  2. BTempo O(n) e spazio O(1)
  3. CTempo O(log n) e spazio O(n)
  4. DTempo O(2ⁿ) e spazio O(1)
11.Strutture datiMedia

Che cosa succede quando una tabella hash esegue il rehashing dopo che il fattore di carico ha superato una soglia?

  1. ASi alloca una tabella più grande e ogni chiave viene reinserita
  2. BLe chiavi più vecchie vengono eliminate per fare spazio
  3. CLe chiavi esistenti vengono ordinate sul posto
  4. DSolo le chiavi in collisione vengono spostate in una nuova lista di overflow in fondo alla tabella
12.Strutture datiDifficile

Senza unione per rango né compressione dei cammini, qual è il costo nel caso peggiore di una singola find in una struttura union-find con n elementi?

  1. AO(n)
  2. BO(1)
  3. CO(log n)
  4. DO(α(n))
13.Teoria dei grafiMedia

Un grafo connesso ha 7 vertici e 17 lati. Quanti lati k vanno tolti per ottenere un albero di copertura?

|V| = 7|E| = 17
k =
14.Teoria dei grafiDifficile
513464111191ABCDEF

Usa l’algoritmo di Dijkstra per trovare la lunghezza d(C) del cammino minimo da A a C nel grafo pesato.

partenza: Aarrivo: C
d(C) =
15.Basi di dati e SQLMedia

Nell'algebra relazionale, l'operatore di selezione (σ) corrisponde a quale clausola SQL?

  1. AElenco della SELECT
  2. BORDER BY
  3. CWHERE
  4. DGROUP BY
16.Basi di dati e SQLDifficile

Perché il NATURAL JOIN è considerato rischioso nelle query in produzione?

  1. AUnisce su tutte le colonne con lo stesso nome, quindi una nuova colonna può cambiare il risultato senza che ce ne si accorga
  2. BRestituisce sempre un prodotto cartesiano
  3. CNon è supportato da alcun database
  4. DIgnora chiavi primarie ed esterne e mantiene solo le righe NULL
17.Reti di calcolatoriMedia

Quale protocollo usa il comando «ping»?

  1. AHTTP
  2. BTCP
  3. CICMP
  4. DUDP
18.Reti di calcolatoriDifficile

La fase di «slow start» del controllo di congestione TCP:

  1. AMantiene la finestra fissa a un segmento
  2. BÈ usata solo da UDP
  3. CAumenta la finestra di congestione in modo esponenziale fino a una soglia o a una perdita
  4. DDimezza la finestra di congestione a ogni round trip finché non viene rilevata una perdita di pacchetti
19.Sottoreti IPv4Media
255.255.255.25211111111111111111111111111111100bit di retebit di host

Una sottorete usa la maschera 255.255.255.252. Quanti indirizzi host utilizzabili H ha?

255.255.255.252
H =
20.Sottoreti IPv4Difficile
terzo ottetto 162 … 165112806413201608041201comunivariabili

Un router ha route verso queste reti: 10.224.162.0/24, 10.224.163.0/24, 10.224.164.0/24, 10.224.165.0/24. Qual è la lunghezza di prefisso massima p di un’unica route di riepilogo che le copra tutte?

10.224.162.0/24 … 10.224.165.0/24
p =

3Soluzioni

1.Sistemi di numerazione

Risposta: U = 243

Impostare i bit: ogni bit vale una potenza di due (128, 64, …, 1). Una cifra esadecimale è esattamente quattro bit, e nel complemento a due a 8 bit il bit più a sinistra vale −128. Le operazioni bit a bit lavorano su ogni posizione di bit separatamente.

Inverti e aggiungi uno

13 = 0000 1101
invertito: 1111 0010
+1 → 1111 0011

Leggilo senza segno

1111 0011₂ = 256 − 13 = 243

Risposta

U = 243
2.Sistemi di numerazione

Risposta: R = 180

Impostare i bit: ogni bit vale una potenza di due (128, 64, …, 1). Una cifra esadecimale è esattamente quattro bit, e nel complemento a due a 8 bit il bit più a sinistra vale −128. Le operazioni bit a bit lavorano su ogni posizione di bit separatamente.

Bit per bit

Scorrere a sinistra di 2 sposta ogni bit di 2 posizioni verso sinistra; i bit che escono dall’estremità sinistra sono persi ed entrano zeri a destra.

0110 1101 << 2
= 1011 0100

Valore del risultato

1011 0100₂ = 180

Risposta

R = 180
3.Logica proposizionale e dimostrazioni

Risposta: N = 7

Tabelle di verità: una formula con n variabili distinte ha 2ⁿ righe, una per ogni combinazione di valori di verità (1 = vero, 0 = falso). Procedi dall’interno verso l’esterno e dai a ogni sottoformula una colonna propria. ¬a inverte il valore; a ∧ b vale 1 solo quando entrambi valgono 1; a ∨ b vale 0 solo quando entrambi valgono 0; a → b vale 0 solo quando a = 1 e b = 0; a ↔ b vale 1 quando i due lati sono uguali.

Tabella di verità riga per riga

p = 1, q = 1, r = 1: q ∧ r = 1, p ∧ (q ∧ r) = 1, q → r = 1, (p ∧ (q ∧ r)) ∧ (q → r) = 1, ¬((p ∧ (q ∧ r)) ∧ (q → r)) = 0
p = 1, q = 1, r = 0: q ∧ r = 0, p ∧ (q ∧ r) = 0, q → r = 0, (p ∧ (q ∧ r)) ∧ (q → r) = 0, ¬((p ∧ (q ∧ r)) ∧ (q → r)) = 1
p = 1, q = 0, r = 1: q ∧ r = 0, p ∧ (q ∧ r) = 0, q → r = 1, (p ∧ (q ∧ r)) ∧ (q → r) = 0, ¬((p ∧ (q ∧ r)) ∧ (q → r)) = 1
p = 1, q = 0, r = 0: q ∧ r = 0, p ∧ (q ∧ r) = 0, q → r = 1, (p ∧ (q ∧ r)) ∧ (q → r) = 0, ¬((p ∧ (q ∧ r)) ∧ (q → r)) = 1
p = 0, q = 1, r = 1: q ∧ r = 1, p ∧ (q ∧ r) = 0, q → r = 1, (p ∧ (q ∧ r)) ∧ (q → r) = 0, ¬((p ∧ (q ∧ r)) ∧ (q → r)) = 1
p = 0, q = 1, r = 0: q ∧ r = 0, p ∧ (q ∧ r) = 0, q → r = 0, (p ∧ (q ∧ r)) ∧ (q → r) = 0, ¬((p ∧ (q ∧ r)) ∧ (q → r)) = 1
p = 0, q = 0, r = 1: q ∧ r = 0, p ∧ (q ∧ r) = 0, q → r = 1, (p ∧ (q ∧ r)) ∧ (q → r) = 0, ¬((p ∧ (q ∧ r)) ∧ (q → r)) = 1
p = 0, q = 0, r = 0: q ∧ r = 0, p ∧ (q ∧ r) = 0, q → r = 1, (p ∧ (q ∧ r)) ∧ (q → r) = 0, ¬((p ∧ (q ∧ r)) ∧ (q → r)) = 1

Conta le righe con valore 1

¬((p ∧ (q ∧ r)) ∧ (q → r)): 0, 1, 1, 1, 1, 1, 1, 1
N = 7

Risposta

N = 7
4.Logica proposizionale e dimostrazioni

Risposta: ¬r

Quantificatori e argomenti: ¬∀x P(x) ≡ ∃x ¬P(x) e ¬∃x P(x) ≡ ∀x ¬P(x). Sposta una negazione verso l’interno, scambia ogni quantificatore che attraversa e nega la formula interna con le leggi proposizionali, come ¬(a → b) ≡ a ∧ ¬b. Un argomento è valido quando la conclusione vale 1 in ogni riga in cui tutte le premesse valgono 1. Una sola riga con premesse vere e conclusione falsa è un controesempio e mostra che l’argomento non è valido.

Righe con tutte le premesse vere

p = 0, q = 0, r = 0: ¬r = 1, q = 0, r = 0, ¬r ∧ q = 0

Conclusione

¬r (modus tollens due volte)

Risposta

¬r
5.Logica digitale: porte, mappe K e flip-flop

Risposta: N = 5

Multiplexer: un multiplexer 2ⁿ a 1 trasferisce all’uscita uno dei suoi ingressi dati; le linee di selezione, lette come numero binario, scelgono quale. Per un MUX 4 a 1 con selezioni S₁S₀ = AB, F = A′B′·I₀ + A′B·I₁ + AB′·I₂ + AB·I₃. Collegando gli ingressi dati a 0, 1, C o C′ il MUX realizza qualsiasi funzione di A, B e C, un modo comune di costruire una logica con un solo chip.

Espressione dell’uscita

F = A′B′C′ + A′B + AB′

Righe con F = 1

ABC = 000, 010, 011, 100, 101
N = 5

Risposta

N = 5
6.Logica digitale: porte, mappe K e flip-flop

Risposta: L = 10

Mappe di Karnaugh: le celle sono ordinate in codice Gray (00, 01, 11, 10), quindi le celle vicine, comprese quelle attraverso i bordi, differiscono per esattamente una variabile. Raggruppa gli 1 in rettangoli di 1, 2, 4, 8 o 16 celle, i più grandi e il meno numerosi possibile, finché ogni 1 non è coperto. Ogni gruppo è un termine prodotto: le variabili che restano costanti al suo interno. Un gruppo di 2ᵏ celle perde k variabili. Le condizioni di indifferenza (X) possono servire a ingrandire i gruppi ma non devono mai essere coperte. Raggruppando invece gli 0 si ottiene la forma POS minima.

Implicanti primi

I gruppi più grandi che si possono formare con 1 e X.

B′D′, BC′D, A′D′, ABD, A′B′C, A′BC′
ABCD0001111000011110X001131214150716012113X150141809011110

Copertura minima

F = B′D′ + BC′D + A′D′ + A′B′C
L = 10

Risposta

L = 10
7.Teoria dei numeri e aritmetica modulare

Risposta: x = 24

Inversi e congruenze: a ha un inverso modulo n esattamente quando MCD(a, n) = 1. L’algoritmo di Euclide esteso scrive 1 = s·n + t·a, e allora a⁻¹ ≡ t (mod n). Una congruenza a·x ≡ b (mod n) con MCD(a, n) = 1 ha la soluzione x ≡ a⁻¹·b. Due congruenze x ≡ r₁ (mod m₁) e x ≡ r₂ (mod m₂) con moduli coprimi hanno una soluzione modulo m₁·m₂ (teorema cinese del resto). La φ di Eulero φ(n) conta i numeri da 1 a n coprimi con n: φ(n) = n·∏(1 − 1/p).

Inverso di 33

r = 61, t = 0
r = 33, q = 1, t = 1
r = 28, q = 1, t = −1
r = 5, q = 5, t = 2
r = 3, q = 1, t = −11
r = 2, q = 1, t = 13
r = 1, q = 2, t = −24
33−1 ≡ 37 (mod 61)

Risolvi

x ≡ 37·60 = 2220 ≡ 24 (mod 61)
verifica: 33·24 = 792 ≡ 60 (mod 61)

Risposta

x = 24
8.Teoria dei numeri e aritmetica modulare

Risposta: m = 1386

Potenze modulari e RSA: calcola aᵏ mod n con il quadrato ripetuto: scrivi k in binario, eleva al quadrato, riduci a ogni passaggio e moltiplica le potenze il cui bit è 1. Fermat: aᵖ⁻¹ ≡ 1 (mod p) per un primo p che non divide a, quindi l’esponente si può ridurre modulo p − 1. RSA: scegli i primi p e q, n = p·q e φ(n) = (p − 1)(q − 1); l’esponente pubblico e è coprimo con φ(n), e l’esponente privato è d = e⁻¹ mod φ(n). Cifra con c = mᵉ mod n e decifra con m = cᵈ mod n.

Esponente privato

n = 1739, φ(n) = 1656
d = 17−1 mod 1656 = 1169

Decifra con il quadrato ripetuto

1169 = 1024 + 128 + 16 + 1
1241 ≡ 124 (mod 1739)
1242 ≡ 1464 (mod 1739)
1244 ≡ 848 (mod 1739)
1248 ≡ 897 (mod 1739)
12416 ≡ 1191 (mod 1739)
12432 ≡ 1196 (mod 1739)
12464 ≡ 958 (mod 1739)
124128 ≡ 1311 (mod 1739)
124256 ≡ 589 (mod 1739)
124512 ≡ 860 (mod 1739)
1241024 ≡ 525 (mod 1739)
1241169 ≡ 124·1191·1311·525 ≡ 1386 (mod 1739)

Messaggio

m = 1386
verifica: 138617 mod 1739 = 124

Risposta

m = 1386
9.Algoritmi e complessità

Risposta: D · I cammini minimi in numero di archi dal nodo di partenza

Perché è questa la risposta

La BFS visita i nodi in ordine di distanza (in archi) dalla sorgente, quindi trova i cammini minimi non pesati in O(V + E).

Risposta

D · I cammini minimi in numero di archi dal nodo di partenza
10.Algoritmi e complessità

Risposta: B · Tempo O(n) e spazio O(1)

Perché è questa la risposta

Ogni passo richiede solo i due valori precedenti, quindi la tabella del metodo bottom-up può essere sostituita da due variabili.

Risposta

B · Tempo O(n) e spazio O(1)
11.Strutture dati

Risposta: A · Si alloca una tabella più grande e ogni chiave viene reinserita

Perché è questa la risposta

Poiché l'indice si calcola modulo la dimensione della tabella, tutte le chiavi devono essere ridistribuite nella nuova tabella più grande; raddoppiando la dimensione il costo resta O(1) ammortizzato.

Risposta

A · Si alloca una tabella più grande e ogni chiave viene reinserita
12.Strutture dati

Risposta: A · O(n)

Perché è questa la risposta

Le unioni ingenue possono collegare gli alberi in una lunga catena, quindi find può dover seguire n − 1 puntatori al genitore; le due euristiche la rendono quasi costante.

Risposta

A · O(n)
13.Teoria dei grafi

Risposta: k = 11

Eulero, Hamilton e alberi: un grafo connesso ha un circuito euleriano (ogni lato una volta, di nuovo al punto di partenza) quando ogni vertice ha grado pari, e un cammino euleriano che non è un circuito quando esattamente due vertici hanno grado dispari; il cammino va allora da un vertice dispari all’altro. Un ciclo hamiltoniano visita ogni vertice una volta; Kn ne ha (n − 1)!/2. Un albero con n vertici ha n − 1 lati, e un grafo connesso con m lati mantiene un albero di copertura dopo aver tolto m − n + 1 lati.

Lati di un albero di copertura

7 − 1 = 6

Lati da togliere

k = 17 − 6 = 11

Risposta

k = 11
14.Teoria dei grafi

Risposta: d(C) = 9

Cammini minimi e alberi di copertura: l’algoritmo di Dijkstra fissa un vertice per passo: il vertice non fissato con la distanza provvisoria minima. La sua distanza è allora definitiva, e ogni vertice adiacente v riceve d(v) = min(d(v), d(u) + w(u, v)). L’algoritmo di Kruskal costruisce un albero di copertura minimo prendendo i lati dal più leggero al più pesante e saltando ogni lato che chiuderebbe un ciclo; l’algoritmo di Prim fa crescere un solo albero da un vertice iniziale aggiungendo sempre il lato più leggero che ne esce. Un albero di copertura di n vertici ha n − 1 lati.

Dijkstra passo per passo

Ogni riga: il vertice fissato, la sua distanza definitiva e i vertici adiacenti la cui distanza migliora.

A (0): B: 5, C: 13
B (5): C: 9, D: 11, E: 6
E (6): F: 15
C (9)
D (11)
F (15)

Cammino minimo

A → B → C
d(C) = 9

Risposta

d(C) = 9
15.Basi di dati e SQL

Risposta: C · WHERE

Perché è questa la risposta

σcondition(R) restituisce le tuple di R che soddisfano la condizione, come una clausola WHERE.

Risposta

C · WHERE
16.Basi di dati e SQL

Risposta: A · Unisce su tutte le colonne con lo stesso nome, quindi una nuova colonna può cambiare il risultato senza che ce ne si accorga

Perché è questa la risposta

Un natural join abbina tutte le colonne con nome identico, per esempio una colonna «name» o «created_at» non correlata; una clausola ON o USING esplicita è più sicura.

Risposta

A · Unisce su tutte le colonne con lo stesso nome, quindi una nuova colonna può cambiare il risultato senza che ce ne si accorga
17.Reti di calcolatori

Risposta: C · ICMP

Perché è questa la risposta

Ping invia richieste ICMP echo e misura il tempo finché non tornano le risposte echo.

Risposta

C · ICMP
18.Reti di calcolatori

Risposta: C · Aumenta la finestra di congestione in modo esponenziale fino a una soglia o a una perdita

Perché è questa la risposta

Lo slow start fa crescere la finestra di congestione in modo esponenziale; dopo la soglia, la congestion avoidance la fa crescere linearmente, e una perdita la riduce.

Risposta

C · Aumenta la finestra di congestione in modo esponenziale fino a una soglia o a una perdita
19.Sottoreti IPv4

Risposta: H = 2

IPv4 subnetting: an address has 32 bits. The prefix /p says how many leading bits identify the network; the remaining 32 − p bits number the hosts. A subnet has 2³²⁻ᵖ addresses, but the first (network address) and last (broadcast address) cannot be given to hosts, so 2³²⁻ᵖ − 2 hosts fit. Exceptions: a /31 (point-to-point link, RFC 3021) uses both of its 2 addresses for hosts, and a /32 is one single address (a single host or a loopback).

Lunghezza del prefisso

255.255.255.252 = /30

Host utilizzabili

22 − 2 = 2

Risposta

H = 2
20.Sottoreti IPv4

Risposta: p = 21

Riepilogo delle route (summarization): una route di riepilogo a.b.c.0/p copre tutte le reti i cui primi p bit coincidono. Scrivi in binario l’ottetto che differisce tra la prima e l’ultima rete; il numero di bit iniziali comuni, più i bit degli ottetti precedenti, è il prefisso di riepilogo più lungo.

Confronta i bit

162 = 10100010
165 = 10100101
bit iniziali comuni: 5

Lunghezza del prefisso

p = 16 + 5 = 21

Risposta

p = /21

Route di riepilogo: 10.224.160.0/21 (copre anche 4 rete/i che non sono nell’elenco).

ExamProblems · examproblems.com/courses/computer-science-fundamentals