Учитывая, что у меня есть m непустых различных наборов (помеченных Z [1], Z [2], ..., Z [m]), я стремлюсь вычислить сумму всех возможных подмножеств, где есть только один элемент из каждого набора. Размер каждого подмножества определяется как произведение его членов. Например:
Z[ 1 ] = {1,2,3}
Z[ 2 ] = {4,5}
Z[ 3 ] = {7,8}
Должно привести к:
1*4*7 + 1*4*8 + 1*5*7 + 1*5*8 + 2*4*7 + 2*4*8 + 2*5*7 + 2*5*8 + 3*4*7 + 3*4*8 + 3*5*7 + 3*5*8 = 810
Хотя это легко кодировать (на любом языке), является ли это повторением известной проблемы подмножества сумм ? Если нет, предоставьте алгоритм полиномиального времени, который вычисляет эту сумму (предпочтителен псевдокод или python!). Если не существует алгоритма полиномиального времени, объясните, почему.