Data update
This commit is contained in:
parent
4bb20c9b71
commit
cbaf4c4b64
12390 changed files with 318560 additions and 27248 deletions
|
|
@ -5,9 +5,9 @@ proc continuousKnapsack {items massLimit} {
|
|||
# Add in the unit prices
|
||||
set idx -1
|
||||
foreach item $items {
|
||||
lassign $item name mass value
|
||||
lappend item [expr {$value / $mass}]
|
||||
lset items [incr idx] $item
|
||||
lassign $item name mass value
|
||||
lappend item [expr {$value / $mass}]
|
||||
lset items [incr idx] $item
|
||||
}
|
||||
|
||||
# Sort by unit prices
|
||||
|
|
@ -18,18 +18,18 @@ proc continuousKnapsack {items massLimit} {
|
|||
set total 0.0
|
||||
set totalValue 0
|
||||
foreach item $items {
|
||||
lassign $item name mass value unit
|
||||
if {$total + $mass < $massLimit} {
|
||||
lappend result [list $name $mass $value]
|
||||
set total [expr {$total + $mass}]
|
||||
set totalValue [expr {$totalValue + $value}]
|
||||
} else {
|
||||
set mass [expr {$massLimit - $total}]
|
||||
set value [expr {$unit * $mass}]
|
||||
lappend result [list $name $mass $value]
|
||||
set totalValue [expr {$totalValue + $value}]
|
||||
break
|
||||
}
|
||||
lassign $item name mass value unit
|
||||
if {$total + $mass < $massLimit} {
|
||||
lappend result [list $name $mass $value]
|
||||
set total [expr {$total + $mass}]
|
||||
set totalValue [expr {$totalValue + $value}]
|
||||
} else {
|
||||
set mass [expr {$massLimit - $total}]
|
||||
set value [expr {$unit * $mass}]
|
||||
lappend result [list $name $mass $value]
|
||||
set totalValue [expr {$totalValue + $value}]
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
# We return the total value too, purely for convenience
|
||||
|
|
|
|||
|
|
@ -1,13 +1,13 @@
|
|||
set items {
|
||||
{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}
|
||||
{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}
|
||||
}
|
||||
|
||||
lassign [continuousKnapsack $items 15.0] contents totalValue
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue