Цитата (Владимир55 @ 8.01.2017 - 18:56) |
Число сочетаний по 12 из 500 равно 446202084718341864844750. Где-то на миллион лет дело растянется. |
Цитата (Владимир55 @ 8.01.2017 - 16:44) |
Поскольку задача разовая, то надеялся угадать. |
Цитата (Владимир55 @ 8.01.2017 - 22:56) |
Число сочетаний по 12 из 500... |
Цитата (sergeiss @ 8.01.2017 - 19:30) |
А если вдруг найду, куда идти за миллионом? |
Цитата (sergeiss @ 8.01.2017 - 19:33) |
Откуда взялось 12? Изначально ты говорил "нужно выбрать из них любое количество чисел" |
$n = [1,2,3,4,5,6,7,8,9];//исходный массив
$sum = 14;//сумма
function sum($pos_n, $pos_s, $prev_sum, $s) {
global $n,$sum;
for ($i = $pos_n; $i < count($n); $i++) {
$cur_sum = $prev_sum + $n[$i];
if ($n[$i] >= $sum || $cur_sum > $sum) {
continue;
}
if ($cur_sum == $sum) {
$s[$pos_s] = $n[$i];
foreach ($s as $v) {
echo $v . ' ';
}
echo '<br>';
return;
} else {
$s[$pos_s] = $n[$i];
sum($i + 1, $pos_s+1, $cur_sum, $s);
}
}
}
rsort($n);
sum(0,0,0,[]);