如何编程求出给定任意数字n的加法拆分数量
本帖最后由 wsc810 于 2009-6-18 12:25 编辑例如 5 可以拆分为 5,4+1, 3+2,3+1+1,2+2+1 ,2+1+1+1,1+1+1+1+1 共7种,该问题的每一种拆分法都对应着约瑟夫环的某种循环状态,
见帖子http://bbs.emath.ac.cn/thread-1526-1-1.html
该问题还 可以表述为求不定方程 $x_1+2x_2+3x_3+...+nx_n=n(x_i>=0)$ 所有解数。这个问题好像在数论中也有专门的研究,谁能说说是怎样的。 印象中是符合第二类斯特灵数! 本帖最后由 到处瞎逛 于 2009-6-19 23:41 编辑
整数无序拆分的问题,有现成的递推公式。
用mathcad弄了一个程序。
也可以通过构建母函数F(x)=(1+x+x^2+...+x^n)(1+x^2+x^4+...+x^n)...(1+x^n),将这个母函数展开后,求出每一个x^k前面的系数Ck,就是对应的整数K有多少种拆分的形式。
链接http://www.cppblog.com/mythit/archive/2009/05/06/82088.html上有这样的程序。 3# 到处瞎逛
.xmcd是什么文件?用什么方式打开。 本帖最后由 到处瞎逛 于 2009-6-20 22:08 编辑
3# 到处瞎逛
.xmcd是什么文件?用什么方式打开。
wsc810 发表于 2009-6-20 21:32 http://bbs.emath.ac.cn/images/common/back.gif
mathcad的文件。
mathcad属于小众软件了吧。
不过编写一般的小程序还是比较简便的,而且还直观。 在Mathematica中只需:
例 n=5;
输入:
IntegerPartitions
结果:
{{5}, {4, 1}, {3, 2}, {3, 1, 1}, {2, 2, 1}, {2, 1, 1, 1}, {1, 1, 1, 1, 1}}
页:
[1]