Soma do produto de subconjuntos
Existe um nome para esta operação? E: existe uma expressão de forma fechada?
Para um dado conjunto de n elementos e valor k entre 1 e n,Pegue todos os subconjuntos (combinações) de k itensEncontre o produto de cada subconjuntoEncontre a soma de todos esses produtosEu posso expressar isso em Python e fazer o cálculo com bastante facilidade:
<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>
Eu só estou olhando para a expressão de forma fechada, de modo a evitar o loop no caso do tamanho do conjunto ficar grande.
Note que isto NÃO é o mesmo que esta questão:Soma do produto em todas as combinações com um elemento de cada grupo - essa pergunta é sobre a soma dos produtos de um produto cartesiano. Estou procurando a soma dos produtos do conjunto de combinações de tamanho k; Eu não acho que eles sejam iguais.
Para ser claro, para set (a, b, c, d), então:
<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>
Apenas procurando pela expressão; não há necessidade de fornecer o código Python especificamente. (Qualquer idioma seria ilustrativo, se você quiser fornecer um exemplo de implementação.)