【问题标题】:How to find sum of each subset in php?如何在php中找到每个子集的总和?
【发布时间】:2019-02-04 05:52:33
【问题描述】:

我想计算所有可能的子集形式数组的总和。

$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;
}

以上代码用于查找子集。我从here 找到了这段代码。我只是添加array_sum,但显示 0 如何找到每个子集的总数?有什么办法吗?

【问题讨论】:

  • 你能举个例子解释一下吗?输入和输出是什么?
  • @BhaskarJain 检查更新的问题
  • 您需要做的就是在函数末尾$ans = array_map("array_sum", $results); 这将为您提供所有子集总和的数组(我投票重新打开并尝试编辑 - 如果您想要官方答案请发布新的(更清晰的)帖子)
  • ^ 从哪里获得数组并不重要。在函数调用后执行。在$ans = array_map("array_sum", powerSet($array)); 的情况下

标签: php arrays math set subset


【解决方案1】:

函数中的$result 是数组数组,因此您不能只在其上使用array_sum。为了对每个子集求和,您需要使用 array_maparray_sum

您可以在函数末尾执行此操作 - 只需添加 print_r(array_map("array_sum", $results)); 作为最后一行(如果您希望它作为输出)。

我喜欢 @splash58 关于在函数外使用它的评论:

$ans = array_map("array_sum", powerSet($array));

【讨论】:

    猜你喜欢
    • 2019-05-06
    • 1970-01-01
    • 2011-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多