$list_of_bags = array(11, 41, 31, 15, 15, 66, 67, 34, 20, 42, 22, 25); # total weight of all bags $weight_of_bags = array_sum($list_of_bags); # how many containers do we have at our disposal? $number_of_containers = 4; # How much should one container weight? $weight_per_container = $weight_of_bags / $number_of_containers; # We make an array containing an empty array for each container $containers[] = array(); $total = 0; # For each bag foreach ($list_of_bags as $bag) { for($i=0; $i<$number_of_containers; $i++){ $total = (isset($containers[$i])) ? array_sum($containers[$i]) : 0; if($total + $bag < $weight_per_container){ $containers[$i][] = $bag; break; } } } # output all containers with the number of items and total weight foreach ($containers as $index=>$container) { echo "container $index has "; echo count($container); echo " "; echo "items and weigths: "; echo array_sum($container); echo " "; }Output:
container 0 has 3 items and weigths: 83
container 1 has 3 items and weigths: 96
container 2 has 2 items and weigths: 87
container 3 has 2 items and weigths: 76
container 4 has 2 items and weigths: 47
No comments:
Post a Comment