|

楼主 |
发表于 2017-10-1 19:34
|
显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件 ★ 免费下载 ★ ★ 使用帮助★
本帖最后由 三坛老窖 于 2017-10-1 19:37 编辑
可以的,所有小于目标和值的子集和都在字典中,只要加一个循环(以最小单位为步长从下限到上限)即可获取在限定范围内的所有子集。也可在求子集和过程(Subset_SingleDict)中将
If curKey = Sum Then
GetSubsetNo vTemp(j), i, i
If Solve >= MaxSolve Then GoTo 200
ElseIf curKey < Sum Then
.Item(curKey) = .Item(curKey) & "," & i
End If
更改为:
If curKey <= 子集和上限 and curKey >= 子集和下限 Then
GetSubsetNo vTemp(j), i, i
If Solve >= MaxSolve Then GoTo 200
ElseIf curKey < 子集和下限 Then
.Item(curKey) = .Item(curKey) & "," & i
End If
即可。
|
|