Produktsumme von Teilmengen
Gibt es einen Namen für diese Operation? Und: Gibt es einen Ausdruck in geschlossener Form?
Für eine gegebene Menge von n Elementen und einen Wert k zwischen 1 und n,Nehmen Sie alle Teilmengen (Kombinationen) von k ElementenFinden Sie das Produkt jeder UntergruppeFinden Sie die Summe all dieser ProdukteIch kann das in Python ausdrücken und die Berechnung ganz einfach durchführen:
<code>from operator import mul from itertools import combinations from functools import reduce def sum_of_product_of_subsets(list1, k): val = 0 for subset in combinations(list1, k): val += reduce(mul, subset) return val </code>
Ich suche nur nach dem Ausdruck in geschlossener Form, um die Schleife zu vermeiden, falls die festgelegte Größe groß wird.
Beachten Sie, dass dies NICHT mit dieser Frage identisch ist:Summe des Produkts über alle Kombinationen mit einem Element aus jeder Gruppe - Bei dieser Frage handelt es sich um die Summe der Produkte eines kartesischen Produkts. Ich suche die Summe der Produkte aus der Menge der Kombinationen der Größe k; Ich denke nicht, dass sie gleich sind.
Um klar zu sein, für set (a, b, c, d), dann:
<code>k = 4 --> a*b*c*d k = 3 --> b*c*d + a*c*d + a*b*d + a*b*c k = 2 --> a*b + a*c + a*d + b*c + b*d + c*d k = 1 --> a + b + c + d </code>
Ich suche nur den Ausdruck; Es ist nicht erforderlich, den Python-Code speziell anzugeben. (Jede Sprache ist nur zur Veranschaulichung gedacht, wenn Sie eine Beispielimplementierung bereitstellen möchten.)