Knapsack problem/Continuous: Difference between revisions
Content added Content deleted
(→{{header|Oforth}}: Adding total value) |
|||
Line 1,842: | Line 1,842: | ||
[ "welt", 3.7, 67 ], [ "salami", 3.0, 95 ], [ "sausage", 5.9, 98 ] |
[ "welt", 3.7, 67 ], [ "salami", 3.0, 95 ], [ "sausage", 5.9, 98 ] |
||
] const: Items |
] const: Items |
||
: rob |
: rob |
||
| item | |
| item value | |
||
0.0 ->value |
|||
15.0 #[ dup second swap third / ] Items sortBy forEach: item [ |
15.0 #[ dup second swap third / ] Items sortBy forEach: item [ |
||
dup 0.0 == ifTrue: [ return ] |
dup 0.0 == ifTrue: [ return ] |
||
dup item second >= ifTrue: [ |
dup item second >= ifTrue: [ |
||
"Taking" . item first . " :" . item second dup .cr - |
|||
item third value + ->value continue |
|||
] |
|||
"And part of" . item first . " :" . dup .cr |
|||
item third * item second / value + "Total value :" . .cr break |
|||
] ;</lang> |
] ;</lang> |
||
Line 1,859: | Line 1,864: | ||
Taking greaves : 2.4 |
Taking greaves : 2.4 |
||
And part of welt : 3.5 ok |
And part of welt : 3.5 ok |
||
Total value : 349.378378378378 |
|||
</pre> |
</pre> |
||