Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


ESERCIZI GREEDY SOLUZIONOI, Esercizi di Informatica

SOLUZIONI PROPOSTYA DA ME SU ESERXI

Tipologia: Esercizi

2023/2024

Caricato il 30/06/2026

mattia-giura
mattia-giura 🇮🇹

2 documenti

1 / 6

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
pf3
pf4
pf5

Anteprima parziale del testo

Scarica ESERCIZI GREEDY SOLUZIONOI e più Esercizi in PDF di Informatica solo su Docsity!

Esercizio 4(5 PUNTI) Radio Potenza Centrale ha deciso di affidarvi lo sviluppo di nuovo servizio per aumentare la fidelizzazione del cliente. Ogni giorno Radio Potenza Centrale vuole proporre ai propri clienti un palintesto di prodotti da suggerire ai propri clienti in maniera tale da massimizzare il loro gradimento. Ogni prodotto di Radio Potenza Centrale è indicizzato da 1 a n e ha una durata d{i]. Inoltre in base al suecesso dei prodotti e al profilo dell’utente ogni prodotto ha un valore di gradimento gi], con 1 < i < n. Dato il mimero di ore N che un utente intende passare su Radio Potenza Centrale in una data giornata, progettare un algoritmo di programmazione dinamica che fornisca un palinsesto che massimizzi il gradimento dell'utente. Esercizio 5(6 PUNTI) Siano dato in input un vettore di interi positivi A[1..n] ed un intero c. Progettare un algoritmo di programmazione dinamica che ritorni il valore TRUE se e solo se è possibile ottenere e mediante la somma degli elementi di A[i] eventualmente ripetuti. Più formalmente esistono È indici i, «ik tale che k e=Y Aki] i Ad esempio, consideriamo il vettore A = [3,6,4,7] ed il calore e = 15. E' possibile ottenere 15 con gli indici {1,2,2} ovvero A[i] + A[2] + A[2] = 15. Nota: l’algoritmo deve solo fornire una riposta sulla sua esistenza o meno. Esercizio 5(6 PUNTI) Siano dato in input un vettore di interi positivi A[1..n] ed un intero e. Progettare un algoritmo di programmazione dinamica che ritorni il valore TRUE se e solo se è possibile ottenere e mediante la somma degli elementi di A[i] eventualmente ripetuti. Più formalmente esistono k indici i, î2,.... ix tale che LI e= Al] Ad esempio, consideriamo il vettore A = [3,6,4,7] ed il calore e = 15. E' possibile ottenere 15 con gli indici {1,2,2} ovvero A[1] + A[2] + A[?] = 15. Nota: l'algoritmo deve solo fornire una riposta sulla sua esistenza o meno. Esercizio 5(6 PUNTI) Il nuovo operatore telefonico THEFLASHMOBILE! vuole rivoluzionare il mercato introducendo un meccanismo dinamico di fornitura del traffico dati. L'arco della giornata è divisa in n segmenti. Ogni segmento i è indicizzato da 1 a n ed ha un costo efi] che dipende se quel segmento si trova più o meno in una determinata fascia oraria. Inoltre in base alla quantità di traffico generata durante la giornata ogni singolo utente ha un indice di preferenza f[i] che indica la sua propensione a generare più o meno traffico nel segmento i. Dato il costo giornaliero C' che l'utente è disposto a spendere in una giornata, progettare un algoritmo di programmazione dinamica che fornisca un insieme di segmenti che massimizzi l'utilizzo del traffico dati da parte dell’utente. Esercizio 5(6 PUNTI) Siano dato in input un vettore di interi positivi A[1..n] ed un intero s. Progettare un algoritmo di programmazione dinamica che ritorni il valore TRUE se e solo se è possibile ottenere s mediante la somma degli elementi di A[i] eventualmente ripetuti. Più formalmente esistono k indici 3, t2,..., ig tale che k e=Y Ali] EI Ad esempio, consideriamo il vettore A = [5,3, 10, 7, 6] ed il valore s = 193. E' possibile ottenere 20 con gli indici {1,1,2,4} ovvero A[1] + A[1] + A[3] + A[4] = 20. Nota: l'algoritmo deve solo fornire una riposta sulla sua esistenza o meno. Esercizio 6(5 PUNTI) Dobbiamo organizzare una partita di calcio tra 2r. partecipanti in cui formiamo due squadre composte da n giocatori. Per ogni giocatore î è nota la sua bravura bj con 0 < i < 2n. Per aumentare il divertimento si decide di creare due squadre che siano il più possibile bilanciate in termini di bravura. Progettare attraverso la programmazione dinamica un algoritmo che restituisce true se è possibile suddividere i giocatori in due squadre di n giocatori la cui bravura complessiva sia uguale. Esempio: [1] = 6, b[2] = 5,b[3] = 3,b[4] = 2, la risposta è true perchè è possibile formare due squadre nel seguente modo 1,4 e 2,3 la cui bravura totale è 6+2=5+3=8. Esercizio 5(6 PUNTI) Siano dato in input un vettore di interi positivi A[1..n] ed un intero e. Progettare un algoritmo di programmazione dinamica che ritorni il valore TRUE se e solo se è possibile ottenere e mediante la somma degli elementi di A[i] eventualmente ripetuti. Più formalmente esistono k indici 71,79, ik tale che 13 e= O Ali] 331 Ad esempio, consideriamo il vettore A = [1,3,5,7] ed il calore e = 15. E' possibile ottenere 15 con gli indici {2,3,4} ovvero A[2] + A[3] + A[4] = 15. Nota: l’algoritmo deve solo fornire una riposta sulla sua esistenza o meno. Esercizio 6(5 PUNTI) Nonostante gli esami il vostro medico vi ordina di limitare il numero di caffè a cialde NescaFé consumati durante il giorno, Dalla vostra dispensa potete attingere ad n tipi di cialde ognuna con un costo c; ed una percentuale di caffeina f;. Per limitare il numero di caffè consumati decidete di non consumare più di F caffeina al giorno. Determinate attraverso la program- mazione dinamica il costo minimo che potete sostenere al giorno senza superare la soglia F° di caffeina. Esercizio 6(5 PUNTI) Netflix ha deciso di affidarvi lo sviluppo di nuovo servizio per aumentare la fidelizzazione del cliente. Ogni giorno Netflix vuole proporre ai propri clienti un palintesto di prodotti da suggerire ai propri clienti in maniera tale da massimizzare il loro gradimento. Ogni prodotto di Netflix è indicizzato da 1a n e ha una durata d[i]. Inoltre in base al successo dei prodotti e al profilo dell'utente ogni prodotto ha un valore di gradimento g[i], con 1 < i < n. Dato il numero di ore N che un utente intende passare su Netflix in una data giornata, progettare un algoritmo di programmazione dinamica che fornisca un palinsesto che massimizzi il gradimento dell'utente. Un cuoco deve organizzare due pranzi di matrimonio utilizzando 2n piatti. Per ogni piatto i sono note le sue calorie complessive c; con 0 < i < 2n. Per evitare di appesantire eccessivamen- te uno dei due pranzi il cuoco decide di creare due menù perfettamente bilanciati. Progettare attraverso la programmazione dinamica un algoritmo che restituisce true oppure false se è possibile ripartire i piatti in due menù separati di n piatti le cui calorie totali siano uguali Mobhme onipmavo + PCI C) © olova € Lia botol olll colonia Solto prof lima ompmeno Pdelc) Le 9 a CSO FALSE Pa, (9) (35-00 la Cso VALORE (59 a C50 Pira, Ceto) or P(14 0) Piamni( è, e) Sa Alo.c 0.6] same musa suedruon Sa 8 Loc 0...0] tima mera male If ico am C>o retura False IF t>-o dnd Cso Feluru Valore if j30 4 c30 return Riedi (6-4 CCI) ot Piadti li-4, ©) (FVASRRA += Vale & sularm Eroe