def proverka(summa, kol_komb, this_gruzik, proverka_kombinatci): for kol_gruzikov in range(this_gruzik + 1, len(proverka_kombinatci)): for kol_odnogo_gruzika in range(len(proverka_kombinatci[kol_gruzikov])): if summa + proverka_kombinatci[kol_gruzikov][kol_odnogo_gruzika] == ves: kol_komb += 1 return kol_komb elif summa + proverka_kombinatci[kol_gruzikov][kol_odnogo_gruzika] < ves: summa += proverka_kombinatci[kol_gruzikov][kol_odnogo_gruzika] proverka(summa, kol_komb, kol_gruzikov, proverka_kombinatci) return kol_komb def count_of_combination(gruziki,ves): kol_komb = 0 proverka_kombinatci = [] for all_kol_gruzikov in range(len(gruziki)): proverka_kombinatci.append([]) result = ves while int(result / gruziki[all_kol_gruzikov]) != 0: proverka_kombinatci[all_kol_gruzikov].append(gruziki[all_kol_gruzikov] * int(result / gruziki[all_kol_gruzikov])) result -= gruziki[all_kol_gruzikov] if ves in proverka_kombinatci[all_kol_gruzikov]: kol_komb += 1 proverka_kombinatci[all_kol_gruzikov].remove(ves) for all_kol_gruzikov in range(len(proverka_kombinatci)): for kol_odnogo_gruzika in proverka_kombinatci[all_kol_gruzikov]: summa = kol_odnogo_gruzika if all_kol_gruzikov != len(proverka_kombinatci) - 1: for kol_gruzikov_in_cycle in range(len(proverka_kombinatci)): if kol_gruzikov_in_cycle in range(all_kol_gruzikov + 1): continue else: for kol_odnogo_gruzika_in_cycle in range(len(proverka_kombinatci[kol_gruzikov_in_cycle])): if summa + proverka_kombinatci[kol_gruzikov_in_cycle][kol_odnogo_gruzika_in_cycle] == ves: kol_komb += 1 elif summa + proverka_kombinatci[kol_gruzikov_in_cycle][kol_odnogo_gruzika_in_cycle] < ves: time_summa = summa + proverka_kombinatci[kol_gruzikov_in_cycle][kol_odnogo_gruzika_in_cycle] kol_komb = proverka(time_summa, kol_komb, kol_gruzikov_in_cycle, proverka_kombinatci) return kol_komb gruziki = [1,2,5,6,7] ves = 34 kol_komb = count_of_combination(gruziki, ves) print(kol_komb) #Результат 122 комбинации
Run
Reset
Share
Import
Link
Embed
Language▼
English
中文
Python Fiddle
Python Cloud IDE
Follow @python_fiddle
Browser Version Not Supported
Due to Python Fiddle's reliance on advanced JavaScript techniques, older browsers might have problems running it correctly. Please download the latest version of your favourite browser.
Chrome 10+
Firefox 4+
Safari 5+
IE 10+
Let me try anyway!
url:
Go
Python Snippet
Stackoverflow Question