sum of subsets (algorithm)
Mon Nov 18 2024 15:25:33 GMT+0000 (Coordinated Universal Time)
Saved by
@wtlab
SumOfSub(s, k, r)
{
// Generate left child
x[k] = 1
if (s + w[k] == m) then
write(x[1 : k]) // Subset found
else if (s + w[k] + w[k + 1] <= m) then
SumOfSub(s + w[k], k + 1, r - w[k])
// Generate right child and evaluate conditions
if ((s + r - w[k] >= m) and (s + w[k + 1] <= m)) then
{
x[k] = 0
SumOfSub(s, k + 1, r - w[k])
}
}
content_copyCOPY
Comments