from itertools import combinations
from itertools import combinations_with_replacement
def combinations_with_repeating(values, target):
values = sorted(set(v for v in values if v > 0)) # bez 0, bez duplicít
result = []
for combo in combinations_with_replacement(values, 3):
if sum(combo) == target:
result.append(list(combo))
return result
def combinations_without_repeating(values, target):
result = []
n = len(values)
for r in range(1, n + 1): # veľkosť kombinácie
for combo in combinations(values, r):
if sum(combo) == target:
result.append(list(combo))
return result
print(combinations_with_repeating([7,8,4,6,11,19,17,5],20))
print(combinations_without_repeating([7,8,4,6,11,19,17,5],20))
A ako to zrátame? Uvažujme hod kockou, ktorá má 8 čísiel na hranách, teda vybrať jedno číslo je 1:8, lebo kocka padne len na jedinú stranu z ôsmich. Á ďalej sa pýtame: Koľko je všetkých trojíc s opakovaním, ktoré môžeme z ôsmich možností vybrať? A toto je kombinačné číslo. Teda pozrime, koľko máme na obrázku trojíc, teda dát? Je ich 7? A aká hodnota výjde pre C * 1/8? Je to [1/8] * [8!/(5! * 3!)]==7? Á mohli by sme takto uvažovať?

Comments “Dnes sme sa zamysleli s gpt nad takýmto týzrom/dráždičom mozgu”