找回密码
 欢迎注册
查看: 9156|回复: 5

[提问] 如何编程求出给定任意数字n的加法拆分数量

[复制链接]
发表于 2009-6-18 11:52:56 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?欢迎注册

×
本帖最后由 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-18 14:30:39 | 显示全部楼层
印象中是符合第二类斯特灵数!
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2009-6-19 20:28:08 | 显示全部楼层
本帖最后由 到处瞎逛 于 2009-6-19 23:41 编辑

整数无序拆分的问题,有现成的递推公式。
未标题-1.gif
用mathcad弄了一个程序。
未标题-1.gif
整数拆分.xmcd (83.11 KB, 下载次数: 6)
也可以通过构建母函数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上有这样的程序。

整数拆分.xmcd

52.38 KB, 下载次数: 6, 下载积分: 金币 -1 枚, 经验 1 点, 下载 1 次

毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2009-6-20 21:32:14 | 显示全部楼层
3# 到处瞎逛
.xmcd是什么文件?用什么方式打开。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2009-6-20 21:52:23 | 显示全部楼层
本帖最后由 到处瞎逛 于 2009-6-20 22:08 编辑
3# 到处瞎逛
.xmcd是什么文件?用什么方式打开。
wsc810 发表于 2009-6-20 21:32

mathcad的文件。

mathcad属于小众软件了吧。

不过编写一般的小程序还是比较简便的,而且还直观。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2009-8-4 11:04:48 | 显示全部楼层
在Mathematica中只需:
例 n=5;
输入:

IntegerPartitions[5]


结果:
{{5}, {4, 1}, {3, 2}, {3, 1, 1}, {2, 2, 1}, {2, 1, 1, 1}, {1, 1, 1, 1, 1}}
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

小黑屋|手机版|数学研发网 ( 苏ICP备07505100号 )

GMT+8, 2024-5-19 05:46 , Processed in 0.061937 second(s), 20 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表