I want to count the subsets of a with k subset elements which sum to n. The possible subset elements are defined through a given array a with distinct positive elements. Possible subset elements can be just choosen once per subset. How Can i do this? Optimal without iterating through all subsets.
Example:
n := 10
k := 3
a := 1,2,6,7,8
=> 1 ( 1,2,7 )
Make a table
Aof size(n+1)*(k+1)or map with pair of integers as key.Entry
A[i][j]will contain number of variants to make sumifromjelementsYou need to compose value n from k elements, so
A[n][k]might be built fromA[n-v][k-1]wherevis any value from given set.After filling the table
A[n][k]is answer