PHP Packing Solution — Как разделить элементы поровну

Обратитесь к статье Как разделить предметы поровну в stackoverflow решение было предложено в сценарии Ruby. Но я перевел на PHP скрипт, который, возможно, мог бы помочь кому-то, чтобы иметь лучшую идею, вот код:

Допустим, список сумок, которые у нас есть

$ list_of_bags = array (11, 41, 31, 15, 15, 66, 67, 34, 20, 42, 22, 25);
rsort ($ list_of_bags);

Общий вес всех сумок

$ weight_of_bags = array_sum ($ list_of_bags);

Сколько контейнеров у нас в распоряжении?

$ number_of_containers = 4;

Сколько должен весить один контейнер?

$ weight_per_container = $ weight_of_bags / $ number_of_containers;

Мы создаем массив, содержащий пустой массив для каждого контейнера

$ container [] = array ();
$ total = 0;

За каждую сумку

foreach ($ list_of_bags как $ bag) {
для ($ i = 0; $ i

    $total = (isset($containers[$i])) ? array_sum($containers[$i]) : 0;
if($total + $bag < $weight_per_container){
$containers[$i][] = $bag;
break;
}
} }

вывести все контейнеры с количеством предметов и общим весом

foreach ($ Containers как $ index => $ container) {
эхо «контейнер
$ index has «;
эхо-счет ($ контейнер);
эхо «»;
echo «предметы и весы»;
echo array_sum ($ container);
эхо «»;
}

Вывод должен быть следующим:

Контейнер 0 имеет 3 предмета и вес: 83
Контейнер 1 имеет 3 предмета и вес: 96
Контейнер 2 имеет 2 предмета и вес: 87
Контейнер 3 имеет 2 единицы веса: 76
Контейнер 4 имеет 2 предмета и весит: 47

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]