Hátizsák

Hátizsák

Közepes

Bevezetés

Bob tolvaj. Hónapokig tartó gondos tervezés után végül sikerül feltörnie egy előkelő üzlet biztonsági rendszerét.

Előtte számos tárgy sorakozik, mindegyiknek értéke és súlya van. Bob szívesen elvinne minden tárgyat, de a hátizsákjába csak korlátozott súly fér. Bobnak gondosan mérlegelnie kell, mely tárgyakat vigye magával, hogy a kiválasztottak összértéke a lehető legnagyobb legyen.

Utasítások

A feladatod meghatározni, hogy mely tárgyakat vigye magával Bob, hogy a kiválasztott tárgyak összértéke a lehető legnagyobb legyen, figyelembe véve a hátizsák teherbírását.

A tárgyak egy listában lesznek megadva. Minden tárgynak van súlya és értéke. A megadott értékek mindig szigorúan pozitívak. Bob minden tárgyból csak egyet vihet el.

Például:

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

Knapsack Maximum Weight: 10

A fentiekben az első tárgy súlya 5, értéke 10, a második tárgy súlya 4, értéke 40, és így tovább. Ebben a példában Bobnak a második és a negyedik tárgyat kell elvinnie, hogy maximalizálja az értéket, ami ebben az esetben 90. Nem kaphat 90-nél többet, mivel a hátizsákjának súlykorlátja 10.


Forrás

WikipediaA hivatkozás új ablakban vagy lapon nyílik meg
Szerkesztés GitHubon A hivatkozás új ablakban vagy lapon nyílik meg
Haskell Exercism

Készen állsz elkezdeni a(z) Hátizsák feladatot?

Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) Haskell nyelvet 107 feladat segítségével, valódi emberi mentorálással, mindez ingyen.