Structures de données et algorithmes

On remplit un sac à dos de capacité 8 avec des objets choisis parmi quatre objets de (poids, valeur) (2, 3), (3, 4), (4, 5) et (5, 6). Il n'existe qu'un exemplaire de chaque objet, et les objets ne peuvent pas être fractionnés. Quelle est la valeur totale maximale pour un poids total de 8 ou moins ?

  1. A7
  2. B9
  3. C10
Afficher la réponse et l'explication

Réponse : C. 10

Choisir les objets de poids 3 et 5 donne un poids de 8 et une valeur de 4 + 6 = 10, qui est le maximum. Les poids 2 et 5 (valeur 9) ou 3 et 4 (valeur 9) tiennent aussi, mais restent en dessous de 10, et trois objets quelconques pèsent au moins 2 + 3 + 4 = 9, au-delà de la capacité. Un algorithme glouton qui place les objets par ordre de valeur par unité de poids prend les objets de poids 2 et 3 (valeur 7), puis plus aucun objet ne tient dans la capacité restante de 3 : il s'arrête donc à 7. La programmation dynamique met à jour, objet par objet, une table de la meilleure valeur atteignable pour chaque capacité c, et trouve l'optimum en O(nW) pour n objets et une capacité W.

S'entraîner sur ce thème Retour au thème

Autres questions sur Structures de données et algorithmes

  1. Quelle est une caractéristique de l'algorithme de Boyer-Moore, qui recherche un motif dans une chaîne de caractères ?
  2. Un tableau dynamique, quand on ajoute un élément alors qu'il est plein, alloue une nouvelle zone de capacité double et y copie tous les éléments. Si l'on ajoute un à un 1000 éléments à un tableau vide de capacité 1, combien de copies d'éléments sont effectuées au total ?
  3. Pour une table de hachage contenant de nombreux éléments et maintenue à un facteur de charge d'environ 0,5, quelle est la raison la plus appropriée pour laquelle l'adressage ouvert avec sondage linéaire tend à être plus rapide que le chaînage (relier les éléments par des listes chaînées) ?
  4. Des méthodes de tri dont la suite d'étapes de comparaison-échange est fixée d'avance (réseaux de tri), comme le tri bitonique, sont parfois utilisées pour trier sur du matériel parallèle comme les GPU. Pourquoi ?
  5. Pour un tableau de n éléments, quelle est la complexité temporelle d'un traitement qui compare une seule fois chaque paire d'éléments distincts (une double boucle qui compare l'élément i à tous les éléments situés après lui, en faisant avancer i d'un cran à chaque fois) ?