接30#,合情猜想
如对奇数k一致地成立Sk(x)=(x-1)Yk(x), 则对偶数k, Sk(x)就不应有太脱轨的表现,一个合情猜想是:k≡0(mod 4)时,Sk(x)=(x-1)Yk(x),
k≡2(mod 4)时,Sk(x)=(x2-1)Yk(x).
一旦k=8, 9, 10验证充分,第1)问就可以信心满满地进入数学证明了。已经有很多的启示了,呼之欲出…
接18#,k=偶数时,考察其奇数项
抽取6元序列的奇数项,前50项为{0, 0, 0, 1, 8, 32, 94, 227, 480, 920, 1636, 2739, 4370, 6698, 9926, 14293, 20076, 27594, 37212, 49341, 64444, 83036, 105690, 133037, 165772, 204654, 250510, 304239, 366814, 439284, 522780, 618513, 727782, 851974, 992568, 1151137, 1329352, 1528984, 1751908, 2000105, 2275666, 2580792, 2917802, 3289131, 3697336, 4145098, 4635224, 5170651, 5754450, 6389826}Y_6(x)=-1+x+x^2-x^5-x^6-x^7+x^8+x^9+x^{10}-x^{13}-x^{14}+x^{15}
对应的多项式组合为b_n=-a_n+a_{1+n}+a_{2+n}-a_{5+n}-a_{6+n}-a_{7+n}+a_{8+n}+a_{9+n}+a_{10+n}-a_{13+n}-a_{14+n}+a_{15+n}
经验算,可得到的b_n皆等于352。故6元序列,若只取奇数项,其特征方程就是(x-1)Y6(x)
同样,若只考虑其偶数项,所得bn也都等于352.
分别抽取4元序列的奇数项和偶数项序列,考察结果也一样,所得bn都等于8. k=8初步验算符合31#的猜想。
用最笨的算法算到k=8的前40项为{0, 0, 0, 0, 0, 0, 0, 1, 1, 5, 13, 33, 73, 151, 289, 526, 910, 1514, 2430, 3788, 5744, 8512, 12346, 17575, 24591, 33885, 46029, 61731, 81805, 107233, 139143, 178870, 227930, 288100, 361384, 450096, 556834, 684572, 836618, 1016737},
可得到的12项的bn都等于302。
既然符合,这40项应该没错吧。否则,能够错得符合也太绝了。 k=偶数的情况,因为没有跳项,得到相同的项数比k=奇数的计算量要少50%。所以偶可以把k=8时算到40项,却只能把k=7时算到24项。
k=9时至少需要47项才能得到b1和b2, 如果b1=b2就可以增加我们对猜想的信心。加点可靠性,到b5,那么需要前50项。实际相当于100项,不是偶力所能及的了。
k=10时,到b10需要65项,也够呛. 对于K=7,可以先考虑特殊情况的分布。
我们不凡设2n+1个整数范围为[-n,n],而我们要找到K个数之和为0
先考虑中间5个数中左边3个数相邻,右边两个再分别间隔u和v,即
$D_{u,v}(n)={(X,a-2,a-1,a,a+1+u,a+2+u+v,Y) in Z^7|-n<=X<a-2,a+2+u+v<Y<=n,X+Y+5a+u+v=0},u>=0,v>=0$
对于这些集合的计数,我们可以先找一些特殊的递推关系
首先,对于$u>=3$,我们容易看出
(X,a-2,a-1,a+1,a+u,a+2+u+v,Y)
也满足7个元素之和为0
然后将前面三个数加1,后面3个数减1,得到
(X+1,a-1,a,a+1,a+u-1,a+1+u+v,Y-1)
这个7元组属于$D_{u-3,v+1}(n-1)$,而这个两者减对应关系属于一一映射,于是我们得到
$|D_{u,v}(n)|=|D_{u-3,v+1}(n-1)|,u>=3$
另外我们比如可以考虑$D_{1,v}(n),v>=3$
我们可以构造
(X,a-2,a,a+1,a+2,a+1+v,Y)
它也满足所有元素和为0
然后将左边两个数加1,右边两个数减1,得到
(X+1,a-1,a,a+1,a+2,a+v,Y-1)
属于$D_{0,v-3}(n-1)$,即$|D_{1,v}(n)=D_{0,v-3}(n-1),v>=3$
通过这种方法可以找到一堆关系
然后最后我们将只需要考虑u,v都很小的(都小于3)的一些特殊的情况
而对于那些情况,我们同样分类,如果
X<a-2-1,Y>a+2+u+v+1,那么这些情况可以映射到
(X+1,a-2,a-1,a,a+1+u,a+2+u+v,Y-1),属于$D_{u,v}(n-1)$
于是我们得到$D_{u,v}(n)$和$D_{u,v}(n-1)$的元素数目差是必须X=a-3或Y=a+3+u+v情况的元素数目,而这个情况的数目可以直接计算出来
通过上面方法可以先解出D
然后类似我上面K=4的方法,可以进一步计算本题的解 以下是我计算k=8时的Mathematica程序:
{n1, n2} = Input["n1,n2"]; "输入项数范围";
For"s是8项之和, 一维列表 t 用来装序列值";
For "count用来计数序列的第n项之值"
For[b = a + 1, 7 b <= s - a - 21, b++,
For[c = b + 1, 6 c <= s - a - b - 15, c++,
For[d = c + 1, 5 d <= s - a - b - c - 10, d++,
For], 4 e <= s - a - b - c - d - 6, e++,
For], 3 f <= s - a - b - c - d - e - 3, f++,
For], 2 g <= s - a - b - c - d - e - f - 1, g++, h = s - a - b - c - d - e - f - g; If]]]]]]]; "a~g循环结束, 得到序列第n 项值";
AppendTo]; "将第n项值记入列表t";
使用Mathematica的现成函数来计算的办法,都或隐或显地需要记录所有的解{a, b, c, d, e, f, g, h},需要大量内存,又需要滤去重复解,既慢又耗内存,所以还是手工循环最可靠,只累加项值,不记录解组,省内存,只要将循环值的范围精心控制,效率比现成函数要高些。
只是,我不会递归编程,k增加时,需要手工改程序,加循环层数。哪位大牛帮我把程序改成递归的,我也学习学习。
关于循环变量的范围估算:
a+b+c+d+e+f+g+h=4n+4=:s, 1<=a<b<c<d<e<f<g<h<=n.
a+(a+1)+(a+2)+...+(a+7)<=s, 所以8a<=s-28
a+b+(b+1)+(b+2)+...+(b+6)<=s, 所以7b<=s-a-21
a+b+c+(c+1)+...+(c+5)<=s, 所以6c<=s-a-b-15
a+b+c+d+(d+1)+...+(d+4)<=s, 所以5d<=s-a-b-c-10
(e-4)+(e-3)+...+e+(n-2)+(n-1)+n>=s=4n+4, 所以e>=(n+17)/5
(f-5)+(f-4)+...+f+(n-1)+n>=4n+4, 所以f>=(2n+20)/6=(n+10)/3
(g-6)+(g-5)+...+g+n>=4n+4, 所以g>=(3n+25)/7
以上a, b, c, d, e, f, g已保证g<h, 所以只需要判断If,就可以确定一个解。 记$A(n)={(X_3,X_2,X_1,a,Y_1,Y_2,Y_3) in Z^7|-n<=X_3<X_2<X_1<a<Y_1<Y_2<Y_3<=n,X_3+X_2+X_1+a+Y_1+Y_2+Y_3=0}$
$B(n)={(X_2,X_1,a-1,a,a+1,Y_1,Y_2) in Z^7|-n<=X_2<X_1<a-1,a+1<Y_1<Y_2<=n,X_2+X_1+3a+Y_1+Y_2=0}$
$C(n)={(X_2,X_1,a-1,a,a+2,Y_1,Y_2) in Z^7|-n<=X_2<X_1<a-1,a+2<Y_1<Y_2<=n,X_2+X_1+3a+1+Y_1+Y_2=0}$
$C_h(n)={(X_2,X_1,a-1,a,a+1+h,Y_1,Y_2) in Z^7|-n<=X_2<X_1<a-1,a+1+h<Y_1<Y_2<=n,X_2+X_1+3a+h+Y_1+Y_2=0}$
比如$B(n)=C_0(n),C(n)=C_1(n)$
那么我们需要计算$|A(n)|$
而对于A(n)中一个元素$(X_3,X_2,X_1,a,Y_1,Y_2,Y_3)$可以分成4种情况
i)$X_1<a-1$而且$Y_1>a+1$
对于所有这样情况的元素,我们构造$(X_3+1,X_2+1,X_1+1,a,Y_1-1,Y_2-1,Y_3-1)$,这个元素属于$A(n-1)$,所以这一类元素数目总数为$|A(n-1)|$
ii)$X_1=a-1,Y_1=a+1$
这个集合即B(n)
iii)$X_1=a-1,Y_1=a+1+h>a+1$
这个即集合$C_h(n)$
iv)$X_1=a-1-h<a-1,Y_1=a+1$
由对称性,这个集合的元素数目同$C_h(n)$相同
所以$|A(n)|=|A(n-1)|+|C_0(n)|+2\sum_{h=1}^{infty}|C_h(n)|$ 对于$h>=3$,我们查看$C_h(n)$中一个元素
$(X_2,X_1,a-1,a,a+1+h,Y_1,Y_2)$,其所有项之和为0,那么我们可以得到另外一个7元组
$(X_2,X_1,a-1,a+1,a+h,Y_1,Y_2)$,其所有项之和也为0,由此再次将左边3元素加1,后边3元素减1,得到
$(X_2+1,X_1+1,a,a+1,a-1+h,Y_1-1,Y_2-1)$是属于$C_{h-3}(n-1)$
由此,我们得到$|C_h(n)|=|C_{h-3}(n-1)|$ 本帖最后由 wayne 于 2010-4-28 09:02 编辑
刚才算了一下K=8,算到了51
{0, 0, 0, 0, 0, 0, 0, 1, 1, 5, 13, 33, 73, 151, 289, 526, 910, 1514, 2430, 3788, 5744, 8512, 12346, 17575, 24591, 33885, 46029, 61731, 81805, 107233, 139143, 178870, 227930, 288100, 361384, 450096, 556834, 684572, 836618, 1016737, 1229093, 1478379, 1769773, 2109067, 2502617, 2957499, 3481445, 4083008, 4771508, 5557206, 6451232}
代码:k = 8; dd = Table], x_ /; Length == k], {n, 1, 50}] K=9 上面的代码 只能算到20个
{0, 0, 0, 0, 1, 5, 43, 227, 910, 2934, 8150, 20094, 45207, 94257, 184717, 343363, 610358, 1043534, 1724882, 2767118}