经过一周搜索并将许多算法从其他语言转换为 php 以制作一个包含“来自 n 的组合 k”的数组。我被困住了。请帮我。
这是我的代码(使用 php):
function comb($item,$arr,$out, $start, $n, $k, $maxk) {
if ($k > $maxk) {
foreach($arr as $ar){
echo "$ar";
echo "<br/>";
}
return;
}
for ($i=$start; $i<=$n; $i++) {
$arr[$k] = $item[$i-1];
comb($isi, $arr, $out, $i+1, $n, $k+1, $maxk);
}
}
$team = array("A","B","C","D");
$ar = array();
$o = array();
comb($team,$ar,$o,1,4,1,2);
上面的递归算法真的让我很困惑。上面的代码成功地形成了组合,但由于其递归特性,我无法将它们合并到一个数组中。我只想制作一个包含 4 个项目中的 2 个组合结果的数组。像这样(见下文)
Array (
[0] => Array (
[1] => A
[2] => B
)
[1] => Array (
[1] => A
[2] => C
)
[2] => Array (
[1] => A
[2] => D
)
[3] => Array (
[1] => B
[2] => C
)
[4] => Array (
[1] => B
[2] => D
)
[5] => Array (
[1] => C
[2] => D
)
)
我知道我离答案还很远。但请指导我,以达到那个答案。也许你知道其他技术,没关系。如果您的代码有效,我将使用它。不管你使用了什么技术。任何想法将不胜感激,谢谢..!