1.Facile
Che cos'è un algoritmo a forza bruta?
- AUn algoritmo che prova tutte le possibili soluzioni candidate
- BUn algoritmo che tira a indovinare una risposta a caso
- CUn algoritmo che gira su molti processori
- DUn algoritmo che usa sempre la ricorsione
2.Facile
Quali sono i tre passi di un algoritmo divide et impera?
- ADividi, risolvi (impera), combina
- BOrdina, cerca, restituisci
- CIndovina, verifica, ripeti
- DLeggi, calcola, scrivi
3.Facile
Che cos'è la memoizzazione?
- ALiberare la memoria dopo il ritorno di una funzione
- BMemorizzare i risultati delle chiamate di funzione così che le chiamate ripetute ottengano la risposta dalla memoria
- CScrivere commenti accanto a ogni riga di codice
- DConvertire automaticamente la ricorsione in un ciclo equivalente così da non avere bisogno dello stack delle chiamate
4.Media
Qual è la complessità temporale della moltiplicazione di due matrici n × n con il triplo ciclo standard?
- AO(n)
- BO(n²)
- CO(n³)
- DO(n² log n)
5.Media
Ordini una volta un array di n elementi e poi rispondi a k query di appartenenza con la ricerca binaria. Qual è il costo totale?
- AO(n log n + k log n)
- BO(k n log n)
- CO(nk)
- DO(n + k)
6.Media
Nel problema della selezione di attività, quale regola greedy dà sempre il numero massimo di attività non sovrapposte?
- AScegliere per prima l'attività più breve
- BScegliere l'attività che inizia prima
- CScegliere l'attività che termina prima, poi ripetere con quelle compatibili
- DScegliere per prima l'attività con meno sovrapposizioni, poi ripetere con quelle compatibili
7.Difficile
Perché una ricerca in una tabella hash è in media O(1) ma nel caso peggiore O(n)?
- ALe chiavi devono prima essere ordinate
- BMolte chiavi possono collidere nello stesso bucket
- CLe funzioni hash sono lente
- DGli array hanno accesso O(n)
8.Difficile
Per dimostrare che un nuovo problema X è NP-difficile, che cosa devi fare?
- ARidurre in tempo polinomiale un problema NP-difficile noto a X
- BRidurre in tempo polinomiale X a un problema NP-difficile noto
- CDimostrare che X non ha un algoritmo polinomiale per input piccoli
- DDimostrare che X si può verificare in tempo polinomiale
Soluzioni
- 1. A · Un algoritmo che prova tutte le possibili soluzioni candidate
- 2. A · Dividi, risolvi (impera), combina
- 3. B · Memorizzare i risultati delle chiamate di funzione così che le chiamate ripetute ottengano la risposta dalla memoria
- 4. C · O(n³)
- 5. A · O(n log n + k log n)
- 6. C · Scegliere l'attività che termina prima, poi ripetere con quelle compatibili
- 7. B · Molte chiavi possono collidere nello stesso bucket
- 8. A · Ridurre in tempo polinomiale un problema NP-difficile noto a X
Soluzioni complete passo passo: esercitati su questo argomento su examproblems.com.