Knapsack problem/Continuous: Difference between revisions
Content added Content deleted
m (→{{header|REXX}}: removed OVERFLOW from PRE html tag.) |
|||
Line 1,755: | Line 1,755: | ||
=={{header|Ruby}}== |
=={{header|Ruby}}== |
||
<lang ruby> |
|||
# Solve Continuous Knapsdack Problem |
|||
# |
|||
# Nigel_Galloway |
|||
# September 8th., 2014. |
|||
maxW, value = 15, 0 |
|||
{:beef => [3.8,36], |
|||
:pork => [5.4,43], |
|||
:ham => [3.6,90], |
|||
:greaves => [2.4,45], |
|||
:flitch => [4.0,30], |
|||
:brawn => [2.5,56], |
|||
:welt => [3.7,67], |
|||
:salami => [3.0,95], |
|||
:sausage => [5.9,98]}.sort_by{|n,g| -1*g[1]/g[0]}.each{|n,g| |
|||
if (maxW-=g[0]) > 0 |
|||
puts "Take all #{n}" |
|||
value += g[1] |
|||
else |
|||
puts "Take #{t=g[0]+maxW}kg #{n}\n\nTotal value of swag is #{value+(g[1]/g[0])*t}" |
|||
break |
|||
end |
|||
} |
|||
</lang> |
|||
{{out}} |
|||
<pre> |
|||
Take all salami |
|||
Take all ham |
|||
Take all brawn |
|||
Take all greaves |
|||
Take 3.5kg welt |
|||
Total value of swag is 349.378378378378 |
|||
</pre> |
|||
=={{header|Run BASIC}}== |
=={{header|Run BASIC}}== |
||
<lang runbasic>dim name$(9) |
<lang runbasic>dim name$(9) |