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 produtos

Eu 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.)

questionAnswers(2)

yourAnswerToTheQuestion