Implémentation en langage Python d’une fonction qui met en œuvre la stratégie « gloutonne » d’une Personne A
def sac_a_dos_2(lo, c):
# lo : liste d'objets ; liste de listes.
# Chaque sous-liste comporte 3 éléments :
# lo[0] : nom de l'objet (str)
# lo[1] : masse de l'objet (int)
# lo[2] : valeur pécuniaire de l'objet (int)
# c : charge maximale supportée par le sac à dos (int)
# tri des objets de la liste par ordre croissant de masse
lo.sort(key = lambda x:x[1])
# s : contenu du sac à dos (list)
# s[0] : liste des objets placés dans le sac à dos (list of str)
# s[1] : masse totale de ces objets (int)
# s[2] : valeur pécuniaire totale de ces objets (int)
s = [[], 0, 0]
for objet in lo :
# Vérification : est-il possible de mettre l'objet choisi dans le sac ?
if objet[1] <= c - s[1]:
# Oui : donc on le met
s[0].append(objet[0])
s[1] += objet[1]
s[2] += objet[2]
else :
break
# renvoi du résultat
return s
Auto-évaluation
Évaluez votre degré de réussite. Comparez votre réponse avec la proposition ci-dessus.
1 – Indiquez la durée mise pour réaliser le travail demandé :
Moins de 15 minutes
Entre 15 minutes et 30 minutes
Plus de 30 minutes
2 – Indiquez les conditions de réalisation :
Sans aide (documentation, tutoriel, forum…)
Avec aide :
>>> documentation
>>> tutoriel
>>> forum
3 – indiquez votre degré de réussite du travail demandé :
entre 75 et 100 %
entre 50 et 75 %
entre 25 et 50%
moins de 25 %