La mochila

La mochila

Media

Introducción

Bob es un ladrón. Tras meses de cuidadosa planificación, por fin consigue burlar los sistemas de seguridad de una tienda de lujo.

Delante de é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 cargar con cierto peso. Bob tiene que pensar bien qué objetos llevarse para maximizar el valor total de su selección.

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 un array de objetos. Cada objeto tendrá un peso y un valor. Todos los valores dados serán estrictamente positivos. Bob solo puede llevar un objeto de cada tipo.

Por ejemplo:

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

Knapsack Maximum Weight: 10

Para el ejemplo anterior, el primer objeto tiene peso 5 y valor 10, el segundo objeto tiene peso 4 y valor 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 nueva ventana o pestaña
Editar en GitHub El enlace se abre en una ventana o pestaña nueva
Haskell Exercism

¿Listo para empezar La mochila?

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