Я хочу вычислить сумму всех возможных подмножеств массива форм.
$array= Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 6 ); //changing
function powerSet($array) {
// add the empty set
$results = array(array());
foreach ($array as $element) {
foreach ($results as $combination) {
$results[] = array_merge(array($element), $combination);
$total= array_sum($results); // I try this
}
echo $total; // I try this
}
return $results;
}
Приведенный выше код используется для поиска подмножеств. Я нашел этот код из Вот. Я просто добавляю array_sum
но показать 0, как найти общее количество каждого подмножества? тем не мение ?
$result
в функции есть массив массивов, поэтому вы не можете просто использовать array_sum
в теме. Для суммирования каждого подмножества необходимо использовать array_map
вместе с array_sum
.
Вы можете сделать это в конце функции — просто добавьте print_r(array_map("array_sum", $results));
как последняя строка (если вы хотите его в качестве вывода).
Мне понравился @ splash58 комментарий об использовании его вне функции с:
$ans = array_map("array_sum", powerSet($array));
Других решений пока нет …