Количество способов выбора 4 разных чисел из множества A = {1,2,3,4, .., 18}, сумма которых равна 31.
Я знаю комбинации с теоремой о полиномах, но здесьмы хотим, чтобы разные номераКак исключить повторение способов повторения 2 или 3 раз.
Поскольку вы не пометили язык,
Я бы сделал что-то подобное в 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);