yyy_fcz 发表于 2011-10-30 15:02:22

等差数列子集和的等差性

设1~n共n个自然数,从中任取k个数求和,共得到m个不同的和,从小到大排列为S1~Sm。求证S1~Sm也为等差数列,公差为1。

hujunhua 发表于 2011-10-31 02:22:00

S1=1+2+...+k=k(k+1)/2
Sm=n+(n-1)+...+(n-k+1)=nk-k(k-1)/2
m=Sm-S1+1=k(n-k)+1

假定Si1(1<i<m)为Range(n)的一个k元子集,并且∑Si1=Si中,那么
1)存在x∈Si1,x-1不属于Si1
       否则,若任意x∈Si1→x-1∈Si1,那么就可以一直递减到1∈Si1,从而得出Si=S1
2)存在y∈Si1,y+1不属于Si1
       否则,若任意y∈Si1→y+1∈Si1,那么就可以一直递增到n∈Si1,从而得出Si=Sm
由1)知,将x换成x-1所得集合亦Range(n)的一个k元子集,即存在Si-1=Si-1
由2)知,将y换成y+1所得集合亦Range(n)的一个k元子集,即存在Si+1=Si+1
故S1,S2,..., Sm是一段连续自然数。

xbtianlang 发表于 2011-10-31 16:54:08

当k=n时,m=1不需考虑;
假设k<n,对1+2+…+k 做一系列的+1操作,便可得到从k(k+1)/2到nk-k(k-1)/2的所有数。
方法如下:
k个数的组合初值为{1,2,…,k},对最大数k逐步+1,直至{1,2,…,k-1,n};
然后对第二大的k-1逐步+1,直至{1,2,…,k-2,n-1,n};
再其次是第三大的k-2,同样操作,一直进行到第k大的1逐步+1,直至{n-k+1,n-k+2,…,n-1,n};
每次都是+1操作,所得的组合和必然连续,证毕!

yyy_fcz 发表于 2011-10-31 18:16:06

3# xbtianlang
这样会遗漏许多组合吧,取n=10,k=3,(1,5,8)这个组合就会被漏掉,需证明该组合的和包含在上述算法得到的和中。

xbtianlang 发表于 2011-10-31 18:26:03

所有组合的和都在{1,2,3}-{8,9,10}的和之间,怎么可能漏掉呢?你要证明的是和的集合,重复自然淘汰,哪来的遗漏啊。

yyy_fcz 发表于 2011-10-31 18:33:54

5# xbtianlang

呵呵,是我没转过弯来。
页: [1]
查看完整版本: 等差数列子集和的等差性