Étant donné un ensemble d'articles, chacun avec un poids et une valeur, déterminez le nombre de chaque article à inclure dans une collection afin que le poids total soit inférieur ou égal à une limite donnée et que la valeur totale soit aussi grande que possible.
Wikipédia pour plus d'informations
Par exemple, vous pouvez avoir un poids maximum de 15 et des objets avec une valeur / masse [5,2], [7,4] [1,1]
et vous produiriez [7,0,1]
7 [5 <value>, 2 <mass>]
objets et 1 [1 <value>, 1 <mass>]
objet pour un score de 36.
Règles
L'entrée peut être prise dans n'importe quel format raisonnable
La sortie est également un format flexible,
Vous ne pouvez pas utiliser des bibliothèques non standard. Si vous devez installer ou télécharger une bibliothèque pour l'utiliser séparément de la configuration initiale, cela n'est pas autorisé
Les objets peuvent avoir une masse et une valeur négatives (c'est-à-dire -1, -1)
Réponses optimales requises
Gagnant
Victoires de code les plus courtes
Masse et valeur négatives?
C'est un élément clé de ce défi. Disons que vous avez un objet avec des objets (masse, valeur) comme [4,3],[-1,-1]
et un sac d'une capacité de 15. Vous pouvez mettre 3 des premiers et marquer 9 ou mettre 4 des premiers et l'un des -1, -1 objet pour un score de 11.
la source
Réponses:
Pyth, 18 octets
Sorties sous forme de liste de paires [valeur, poids]. Extrêmement inefficace, mais il est NP-complet.
Essayez-le ici
Explication
la source