# Problème du sac à dos par algorithme glouton : videos = [('Video 1', 114, 4.57), ('Video 2', 32, 0.630), ('Video 3', 20, 1.65), ('Video 4', 4, 0.085), ('Video 5', 18, 2.15), ('Video 6', 80, 2.71), ('Video 7', 5, 0.320)] """videos = [('Video 1', 5, 25), ('Video 2', 2, 7), ('Video 3', 3, 10), ('Video 4', 4, 15)]""" def duree(fichier): return fichier[1] def taille(fichier): return 1 / fichier[2] def rapport(fichier): return fichier[1] / fichier[2] def glouton(liste, taille_max, choix): triee = sorted(liste, key=choix, reverse=True) reponse = [] totale_duree = 0 taille = 0 i = 0 while i < len(liste) and taille <= taille_max: nom, d, t = triee[i] # nom, durée et taille if taille + t <= taille_max: reponse.append(nom) taille += t totale_duree += d i += 1 return reponse, totale_duree print(glouton(videos, 5, duree)) print(glouton(videos, 5, taille)) print(glouton(videos, 5, rapport))