我试图编写以下要求的代码,但后来认为可能有一个公式。到此为止。
对于一组N个元素,我想计算最大大小为S的无序集合的数量。我发现formulas其中S是固定值(不是最大值)但不是根据我的要求。
对于9 * 3(N * S)= 12,我绘制了以下解决方案树;
// dashes are set separators
@@@--@@@--@@@
@@@--@@@--@@--@
@@@--@@@--@--@--@
@@@--@@--@@--@@
@@@--@@--@@--@--@
@@@--@@--@--@--@--@
@@@--@--@--@--@--@--@
@@--@@--@@--@@--@
@@--@@--@@--@--@--@
@@--@@--@--@--@--@--@
@@--@--@--@--@--@--@--@
@--@--@--@--@--@--@--@--@
答案 0 :(得分:1)
您可以使用简单观察计算集合数量:
F(N,S) = F(N-1,1)+F(N-2,2)+...+F(N-S,S)
最大设定功率= 1的组数+最大设定功率= 2的组数等等。使用递归或填充表(动态编程),使用某些边界条件,如F(1,1)=1