【附】为方便有需要者编辑,特附纯文本如后。另外,文末提供有PPT照片版。
【代数6-2】有n只棋子被分成若干堆,今对状态进行如下操作:从每一堆中各取出一只棋,然后将取出的棋合在一起组成一个新的堆。每次操作后,各堆棋的棋子数按由大到小的顺序排成的数列称为n只棋的一种分布状态。
如果存在r个不同的分布状态A1,A2,…,Ar,其中状态Ai操作一次之后变成状态Ai+1(i=1,2,…,r,规定Ar+1=Ar),则称这r个状态构成一个循环圈,记为:A1→A2→…→Ar→A1,其中r称为该循环圈的长度。
比如,n=8时,对各种不同的初始状态,操作共有2个不同的循环圈:
(4,2,2)→(3,3,1,1)→(4,2,2)
及(4,3,1)→(3,3,2)→(3,2,2,1)→(4,2,1,1)→(4,3,1),
其长度分别为2和4。
对n只棋的所有不同的初始状态,求:
(1)所有循环圈的长度的最大值;
(2)所有长度不同的循环圈的个数f(n);
(3)所有不同循环圈的个数g(n)。(原创题)
【题感】从条件看,定义了一种操作,以及操作中出现的“循环圈”,如何运用这些概念?暂时略过,可从目标入手。
先看目标(1):求所有循环圈的长度的最大值。
一种朴素的想法是,穷举所有循环圈(相当于穷举所有操作)。但n不是具体值,无法穷举各种操作。
可先研究特例,考察若干个具体的循环圈,看能否发现一些规律。
【研究特例】当n=8时,对各种不同的初始状态,操作共有2个不同的循环圈:
(4,2,2)→(3,3,1,1)→(4,2,2);
(4,3,1)→(3,3,2)→(3,2,2,1)→(4,2,1,1)→(4,3,1)。
这两个循环圈本省似乎没有什么规律,但若将其换一种方式来描述,则其隐含的规律就可浮出水面。
【几何直观】想象每一堆棋子都堆成一列,我们可以用一列方格来代替,这样,不难发现这两个循环圈的一个共同特征。
【几何特征】循环圈中棋子挤满了前3条对角线,而第4条对角线上有2只棋。
在第一个循环圈中,第4条对角线上的2只棋不相邻(图1-51)
在第二个循环圈中,第4条对角线上的2只棋相邻。当最后一条对角线上棋子相邻时,循环圈长达到最大。
由此可推广到一般情形(平凡推广)。
【猜想:归纳通式】对一般情况,循环圈中棋子挤满了前面若干条对角线,而紧接着的一条对角线上有若干只棋,其他对角线上没有棋。
为证明猜想,先将初始状态具体化。
【初始状态具体化】设n只棋的最初状态为(a1,a2,…,am),其中a1≥a2≥…≥am,a1+a2+…+am=n。
【状态图形转换】构造一个n×n的方格棋盘,它的各行从下至上依次称为第1行,第2行,…,第n行,它的各列从左至右依次称为第1列,第2列,…,第n列。
将n只棋放在棋盘中,第j列的前aj个方格中各放一只棋(j=1,2,…,m),放棋的方格用黑色方格表示,而空格用白色方格表示。
【操作规则转换】题给的操作由下述两个小操作构成:
(I)将第一行的棋沿直线y=x对称翻转到第一列,同时将其他的每只棋都同时向下和向右平移一格(相当于每堆拿出一只棋组成新的堆)。
(II)如果操作(I)时第一列的棋子数小于第2列的棋子数,则将第一列向右平移到某两列之间,使各列的棋子数按从左至右的顺序递减排列。
【几何操作特征】注意到操作(I)具有这样的特征:它使每只棋在固定的倾斜角为135°对角线上从上至下连续运动(右移下移一格)。
比如,第r条对角线上的棋子的运动轨迹为:(r,1)→(r-1,2)→(r-2,3)→…→(1,r)→(r,1)由此可适当定义特征值,发现操作(I)的一个不变量。
【定义特征值】对于第i行第j列的棋子(i,j),称i+j为它的特征值,对某一个状态,称所有棋子的特征值之和为状态的特征值,记为S。
【不变量】易知,S在操作(I)中不变。
实际上,对于第一行的棋(1,j),操作(I)使其变为棋(j,1),棋子的特征值不变。对于其他行的棋(i,j)(i≥2),操作(I)使其变为棋(i-1,j+1),棋子的特征值不变。从而状态的特征值S不变。
【单调性】此外,S在操作(II)中严格减小。
操作(II)可以通过不断交换相邻两列来实现,考察第p列与第p+1列的交换,则第p列的棋子的特征值都增加1,而第p+1列的棋子的特征值都减少1,但第p列的棋子数小于第p+1列的棋子数(递减排列),所以S减少。
由于S是正整数,所以S不能无限减小,所以必定存在某个时刻,在这个时刻之后,操作中只含有操作(I),而操作(II)不再出现。
于是,操作进入循环圈后,其操作都是操作(I)。
注意到前面连续k条对角线上的方格数之和为1+2+…+k=
,为了确定接下来的对角线上是否有棋,需要将n表成“n=
+q(0≤q
【划分序列】对给定的正整数n,必存在正整数k,使
≤n<
,设n=
+q,其中0≤q
为了证明上述猜想(循环圈中棋子布满前面若干条对角线),先确定好循环圈中棋子的大致分布,可假定它们在前面若干条对角线上(只有有限只棋),可引入容量参数,使对角线条数相对确定。
【容量参数】设操作的循环圈中,棋子分布在棋盘的前r条135°对角线上,即前r条对角线上都有棋子(但未必紧凑排列),而第r+1条对角线及上方都没有棋子。
【从简单入手】(i)当q=0时,n=
。
因为前k-1条对角线上方格个数为1+2…+(k-1)=
<
=n,所以r≥k。
【反面思考】如果r≥k +1(棋子占有k+1条对角线),则第k+1条对角线或其上方必有棋,该棋所在列位于该棋下方的格都有棋,进而第k+1条对角线上必有棋。任取其中的一个棋子A,设A位于第i列。
此时,第k条对角线上必有空格,否则,第k条对角线上没有空格,进而“棋子堆”的意义,前k条对角线上都没有空格,于是棋子数不少于(1+2…+k)+1=
+1>
,矛盾。任取第k条对角线上的一个空格B,假定B位于第j列。
由于第k+1条对角线比第k条对角线多一个方格,所以,通过k+1次“I型”操作后,棋子A在第k+1条对角线上经过一个循环又回到原来的位置第i列,而空格B则在第k条对角线上经过一个循环还多走了一格,从而走到了第j+1列。
如此下去,一定存在一个时刻,当棋子A经过若干个循环回到原位置后,空格B也走到了第i列,此时,棋子A位于空格B的正上方,矛盾。
所以r≤k,进而r=k。
此时,由于1+2…+k=
,从而每条对角线上都没有空格,各堆棋子的棋子数分别为1,2,…,k,即所有棋子恰好布满了前k条对角线,结论成立。
(ii)当0
+q,有
+1≤n<
+(k+1),因为前k条对角线上方格个数为1+2…+k=
容易猜想r=k+1,这采用反面思考即可。
【反面思考】如果r>k+1,则第k+2条对角线上必有棋子,任取其中的一个棋子A,假定A位于第i列。
此时,第k+1条对角线上必有空格,否则前k+1条对角线上都没有空格,于是棋子数不少于1+2…+k+(k+1)+1=
+k+2>n,矛盾。
任取第k+1条对角线上中的一个空格B,假定B位于第j列。
由于第k+2条对角线比第k+1条对角线多一个方格,所以,通过k+2次“I型”操作后,棋子A在第k+2条对角线上经过一个循环又回到原来的位置第i列,而空格B则在第k+1条对角线上经过一个循环还多走了一格,从而走到了第j+1列。
如此下去,一定存在一个时刻,当棋子A经过若干个循环后,空格B也走到了第i列,此时,棋子A位于空格B的正上方,矛盾。
所以r≤k+1,进而r=k+1。
因为第k+1条对角线上有棋子,同上面的讨论可知,第k条对角线上必定没有空格,从而前k条对角线上都没有空格。此时,棋子布满了前k条对角线,而第k+1条对角线上有q只棋,结论成立。
由此可见,不论q(0≤q
有了上述结论,求圈长最大值就是很简单的了。
(1)因为第k+1条对角线上有q只棋,不管这q只棋在第k+1条对角线上如何分布,“I型”操作都使它们在第k+1条对角线上从上至下移动,每次移动一个方格,所以,操作k+1次之后必进入循环,于是,循环圈的长度不大于k+1。
另一方面,将q只棋放在第k+1条对角线上的连续q个方格中,则对应的循环圈的长度为k+1(是因每只棋沿对角线运动周期为k+1,导致紧凑的若干只棋子段的周期也是k+1),故操作中出现的所有不同循环圈的长度的最大值为k+1。
下面考虑问题(2),同样利用上述结论,问题也很简单。
(2)设s是某个循环圈的长度,则操作s次之后进入循环,于是,第k+1条对角线上棋子的分布以s为周期,所以s|k+1。
设k+1=st,则t|k+1,由于第k+1条对角线上棋子的分布以s为周期,所以第k+1条对角线被分成t段(每段s个格),每一段上棋子的分布状态相同。
又第k+1条对角线上恰有q只棋,这q只棋只能平均分配到t段中,所以t|q。
所以,t是q与k+1的公约数。
由此可见,若s是某个循环圈的长度,则
是q与k+1的公约数,即s与q、k+1的一个公约数对应。
反之,对q、k+1的任意一个公约数t,将第k+1条对角线平均分成t段(每段
个格),然后每一段的前
个方格上各放一只棋,则对应的状态在操作中必产生长度为
的循环圈。
所以,循环圈的长度与q、k+1的公约数一一对应,于是,所有长度不同的循环圈的个数就是q、k+1的公约数的个数,也就是d=(q,k+1)的约数的个数,其长度分别为
(t|d)。
比如,n=100时,因为100=(1+2+…+13)+9,此时,k=13,q=9,d=(q,k+1)=(9,14)=1,这时,操作只有一种长度为14的循环圈。
最后考虑问题(3),但它是一个难度相当大的问题,我们还没有解决。
【初步结果】对n=100、2012、2013时,我们已求得
g(100)=143,g(2012)=9455,g(2013)=630,证明如下。
当n=100时,因为100=(1+2+…+13)+9,当操作进入循环圈之后,所有棋子布满了前13条对角线,而第14条对角线上有9只棋。
由d=(q,k+1)=(9,14)=1,可知操作只有一种长度为14的循环圈。
在第14条对角线上的14个方格中选取9个方格各放一只棋,有
种方法,从而有
个循环圈。但每一种方法在第14条对角线上可以移动到14个不同位置,这14个不同位置对应同一个循环圈,从而每个循环圈都被计算14次,所以,所有不同的循环圈的个数为
=143。
当n=2012时,因为2012=(1+2+…+62)+59,当操作进入循环圈之后,所有棋子布满了前62条对角线,而第63条对角线上有59只棋。
由d=(q,k+1)=(59,63)=1,可知操作只有一种长度为63的循环圈。
在第63条对角线上的63个方格中选取59个方格各放一只棋,有
种方法,从而有
个循环圈。但每一种方法在第63条对角线上可以移动到63个不同位置,这63个不同位置对应同一个循环圈,从而每个循环圈都被计算63次,所以,所有不同的循环圈的个数为
=9455。
当n=2013时,因为2013=(1+2+…+62)+60,当操作进入循环圈之后,所有棋子布满了前62条对角线,而第63条对角线上有60只棋。
由d=(q,k+1)=(60,63)=3,因为3有2个不同的约数1和3,可知操作有长度分别为21和63这2种长度的循环圈。
对于长度为21的循环圈,先将第63条对角线分成3段,每段21个方格,在第一段21个方格中放
=20只棋,本质上只有一种放法,而其他段的放棋方法与第一段相同,有唯一方法,于是,长度为21的循环圈只有1个。
对于长度为63的循环圈,先将长度为21的循环圈也看作是长度为63的循环圈(以21为周期,也一定以63为周期),于是,在第63条对角线上的63个方格中选取60个方格各放一只棋,有
种方法,从而有
个循环圈。
但其中包含了一个长度为21的循环圈,该循环圈被重复计算21次,而每个长度为63的循环圈都重复计算63次,设共有x个长度为63的循环圈,则有
63x+21=
,解得x=630,
所以,所有不同的循环圈的个数为630。
【新写】引理:当操作循环圈中,棋子挤满了前面若干条对角线,而紧接着的一条对角线上有若干只棋,其他对角线上没有棋。(证明略)
设n=+q(0≤q
(1)因为第k+1条对角线上有q只棋,不管这q只棋在第k+1条对角线上如何分布,“I型”操作都使它们在第k+1条对角线上从上至下移动,每次移动一个方格,所以,操作k+1次之后必进入循环,于是,循环圈的长度不大于k+1。
另一方面,将q只棋放在第k+1条对角线上的连续q个方格中,则对应的循环圈的长度为k+1,故操作中出现的所有不同循环圈的长度的最大值为k+1。
(2)设s是某个循环圈的长度,则操作s次之后进入循环,于是,第k+1条对角线上棋子的分布以s为周期,所以s|k+1。
设k+1=st,则t|k+1,由于第k+1条对角线上棋子的分布以s为周期,所以第k+1条对角线被分成t段(每段s个格),每一段上棋子的分布状态相同。
又第k+1条对角线上恰有q只棋,这q只棋只能平均分配到t段中,所以t|q。
所以,t是q与k+1的公约数。
由此可见,若s是某个循环圈的长度,则
是q与k+1的公约数,即s与q、k+1的一个公约数对应。
反之,对q、k+1的任意一个公约数t,将第k+1条对角线平均分成t段(每段
个格),然后每一段的前
个方格上各放一只棋,则对应的状态在操作中必产生长度为
的循环圈。
所以,循环圈的长度与q、k+1的公约数一一对应,于是,所有长度不同的循环圈的个数就是q、k+1的公约数的个数,也就是d=(q,k+1)的约数的个数,其长度分别为
(t|d)。