31 как сумма 4 разных чисел от 1 до 18 - PullRequest
0 голосов
/ 16 марта 2019

Количество способов выбора 4 разных чисел из множества A = {1,2,3,4, .., 18}, сумма которых равна 31.

Я знаю комбинации с теоремой о полиномах, но здесьмы хотим, чтобы разные номераКак исключить повторение способов повторения 2 или 3 раз.

1 Ответ

0 голосов
/ 16 марта 2019

Поскольку вы не пометили язык,

Я бы сделал что-то подобное в php,

 $set = [];
$combinations = [[]];
$length = 4;
$sum_value = 18; 
for($i = 0; $i < $length; $i++){
    $set[] = range(1, $sum_value);
}
for ($i = 0; $i < $length; $i++) {
    $tmp = [];
    foreach ($combinations as $v1) {
        foreach ($set[$i] as $v2)
            $tmp[] = array_merge($v1, [$v2]);
    }
    $combinations = $tmp;
}
$result=[];
foreach ($combinations as $c) {
    if(count($c) == count(array_unique($c)))
        if(array_sum($c) == $sum_value)
        {
            $result[]=$c;
        }
}
echo 'Total '.count($result).' combinations of length '.$length.' for sum = '. $sum_value; 
//print_r($result);
...