Для того чтобы скрипт находил только комбинации из 4-х слагаемых, а не комбинации из 3-х и 5-ти слагаемых, необходимо внести изменения в алгоритм генерации комбинаций.
Одним из способов достичь данной цели является модификация рекурсивной функции, которая генерирует все возможные комбинации. Вот пример такого скрипта на языке Python:
```python
def find_combinations(n, k, target_sum, current_comb, result):
if k == 0:
if target_sum == 0:
result.append(current_comb.copy())
return
if target_sum < k or target_sum > k * n:
return
for i in range(1, n + 1):
current_comb.append(i)
find_combinations(n, k - 1, target_sum - i, current_comb, result)
current_comb.pop()
n = 10
k = 4
target_sum = 20
result = []
find_combinations(n, k, target_sum, [], result)
print(result)
```
В данном примере мы передаем значения `n` (общее количество слагаемых), `k` (количество слагаемых в комбинации) и `target_sum` (целевая сумма). Изначально список `result` пустой.
Функция `find_combinations` строит комбинации путем рекурсивного вызова себя самой, уменьшая одно слагаемое в каждом шаге и соответствующим образом обновляя целевую сумму. Когда достигается базовый случай `k == 0`, мы проверяем, является ли текущая сумма равной целевой. Если это так, то добавляем комбинацию в список `result`.
Обратите внимание, что внутри функции мы добавили условия `if target_sum < k or target_sum > k * n` для оптимизации алгоритма, чтобы избежать создания бесполезных комбинаций.
Здесь приведен один из возможных вариантов реализации. Вы можете адаптировать этот код под свои потребности, например, заменить печать на сохранение комбинаций в файл или использовать другой язык программирования.