Mochila

Mochila

Intermedia

Introducción

Bob es un ladrón. Después de meses de planificación cuidadosa, por fin logra burlar los sistemas de seguridad de una tienda elegante.

Frente a él hay muchos objetos, cada uno con un valor y un peso. Bob se llevaría encantado todos los objetos, pero su mochila solo puede soportar cierto peso. Bob tiene que considerar con cuidado qué objetos llevar para que el valor total de su selección sea el máximo.

Instrucciones

Tu tarea es determinar qué objetos llevar para que el valor total de su selección sea el máximo posible, teniendo en cuenta la capacidad de carga de la mochila.

Los objetos se representarán como una lista de objetos. Cada objeto tendrá un peso y un valor. Todos los valores dados serán estrictamente positivos. Bob puede llevar solo uno de cada objeto.

Por ejemplo:

Items: [
  { "weight": 5, "value": 10 },
  { "weight": 4, "value": 40 },
  { "weight": 6, "value": 30 },
  { "weight": 4, "value": 50 }
]

Knapsack Maximum Weight: 10

En el ejemplo anterior, el primer objeto tiene un peso de 5 y un valor de 10, el segundo objeto tiene un peso de 4 y un valor de 40, y así sucesivamente. En este ejemplo, Bob debería llevar el segundo y el cuarto objeto para maximizar su valor, que, en este caso, es 90. No puede obtener más de 90, ya que su mochila tiene un límite de peso de 10.


Fuente

WikipediaEl enlace se abre en una ventana o pestaña nueva
Editar en GitHub El enlace se abre en una ventana o una pestaña nuevas
Haskell Exercism

¿Todo listo para empezar Mochila?

Regístrate en Exercism para aprender y dominar Haskell con 107 ejercicios y mentoría humana real, todo gratis.