Algorithm 划分递归关系理解

Algorithm 划分递归关系理解,algorithm,recurrence,Algorithm,Recurrence,确定是否存在与楼层(N/2)相加的S子集。 给定S={3,1,1,2,2,1},划分问题的有效解是两个集S1={1,1,1,2}和S2={2,3} 设{x1,…,xj}的一个子集与i求和为真,否则为假 p(i,j)为真,如果{ p(i,j)− 1) 是真的------(一) p(i)− xj,j− 1) 是真的------(二) } 我对(i)方程的理解是:{x1,…,xj}的子集不能和i相加,但之前的j-1元素可以和i相加 我对(i)方程的理解是:{x1,…,xj}的子集,它使用xj,并与i求

确定是否存在与楼层(N/2)相加的S子集。 给定S={3,1,1,2,2,1},划分问题的有效解是两个集S1={1,1,1,2}和S2={2,3}

设{x1,…,xj}的一个子集与i求和为真,否则为假

p(i,j)为真,如果{ p(i,j)− 1) 是真的------(一) p(i)− xj,j− 1) 是真的------(二) }

我对(i)方程的理解是:{x1,…,xj}的子集不能和i相加,但之前的j-1元素可以和i相加 我对(i)方程的理解是:{x1,…,xj}的子集,它使用xj,并与i求和− xj(因为xj+该子集的和=i)

然而,我的理解不适用于(ii)方程(j-1)部分

为什么我们不能有p(i− 只有xj,j?

对于情形(ii),我们找到了{x1,…,xj}的一个子集,它使用xj和i的和

然而,我们是通过将xj与{x1,…,x(j-1)}的子集组合来求和的

如果我们有p(i-xj,j),那么我们可以说,通过使用xj加上{x1,…xj}的子集,我们可以得到i的总数,并且我们可以使用xj两次

例如,如果我们有集合{1,5,16},那么总数是16+5+1=22,所以目标是11。如果你将递归改为p(i-xj,j),那么算法会说,通过使用{1,5,5}可以得到11的和-注意,我们使用了5两次,这是不允许的