Софтуерно Инженерство
Loading...
+ Нов въпрос
mfilipov avatar mfilipov 24 Точки

Решение на "Combination"

Друго решение на задачата, но и то е много бавно.

from itertools import product
num = int(input())
counter = 0

for row in product(range(num + 1), repeat=5):
    if int(row[0]) + int(row[1]) + int(row[2]) + int(row[3]) + int(row[4]) == num:
        counter += 1
print(counter)



При n = 25 компютъра ми намира решението за 16 секунди, защото обхожда всички комбинации.
Идеи за по-добро решение.

Тагове:
0
Python 19/11/2018 21:15:05
zhivko1985 avatar zhivko1985 32 Точки

Не пиша на Pyton, но логиката е обща. Можеш да сложиш условна проверка. Когато сборът от предхоните числа надхвърля n, няма смисъл да правиш итерация на следващия цикъл.

Нпр

Ако n = 20 и си стигнал до 10 5 5 защо да въртиш следващите цикли после...

 

 

0