找回密码
 欢迎注册
查看: 56637|回复: 31

[擂台] [转载]整数分解为2的幂的和

[复制链接]
发表于 2010-3-31 09:00:22 | 显示全部楼层 |阅读模式

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

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

×
http://topic.csdn.net/u/20100325 ... 4-1ed8f6b49c99.html
数的分解:任何数都能分解成2的幂,比如
7=1+1+1+1+1+1+1
=1+1+1+1+1+2
=1+1+1+2+2
=1+2+2+2
=1+1+1+4
=1+2+4
求任意整数n(n<100亿)的此类划分数
如果对于更加大的n呢?比如$n=10^20$
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2010-3-31 09:52:18 | 显示全部楼层
f(2m+1)=f(2m),f(2m)=f(2m-1)+f(m),f(1)=1,f(2)=2

关键是找出 递推式子f(n)

设其生成函数为G(x),那么
$G(x^2)=(1-x)G(x)$
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2010-3-31 09:55:14 | 显示全部楼层
只要把数转化为2进制,然后把对应位为1的值相加即可
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2010-3-31 10:17:43 | 显示全部楼层
只要把数转化为2进制,然后把对应位为1的值相加即可
qianyb 发表于 2010-3-31 09:55

显然错误,给出链接处的参考数据:

f(1) = 1
f(2) = 2
f(3) = 2
f(4) = 4
f(5) = 4
f(6) = 6
f(7) = 6
f(8) = 10
f(9) = 10
f(10) = 14
f(11) = 14
f(12) = 20
f(13) = 20
f(14) = 26
f(15) = 26
f(16) = 36
f(17) = 36
f(18) = 46
f(19) = 46
f(20) = 60
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2010-3-31 10:19:01 | 显示全部楼层
关键是找出 递推式子f(n)

设其生成函数为G(x),那么
G(x^2)=(1-x)G(x)
wayne 发表于 2010-3-31 09:52

这个公式还是比较容易得出的。
但是在n比较大的时候要有效计算还是有点困难的。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2010-3-31 10:51:50 | 显示全部楼层
我以为题目是说把一个数怎么分为由2的幂次数组成(如7=1+2+4),没看链接内容
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2010-3-31 10:55:31 | 显示全部楼层
f(1) = 1
f(2) = 2
f(3) = 2
f(4) = 4
f(5) = 4
f(6) = 6
f(7) = 6
f(8) = 10
f(9) = 10
f(10) = 14
f(11) = 14
f(12) = 20
f(13) = 20
f(14) = 26
f(15) = 26
f(16) = 36
f(17) = 36
f(18) = 46
f(19) = 46
f(20) = 60
这个数是怎么算出来的?
题目不是要计算N由2的幂次数组成的不同方法的数量吗

2=1+1, D(2)=1
3=1+1+1=1+2,D(3)=2
4=1+1+1+1=1+1+2=2+2,D(4)=3
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2010-3-31 11:11:01 | 显示全部楼层
2=2
2=1+1
4=1+1+1+1
4=1+1+2
4=2+2
4=4
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2010-3-31 12:17:40 | 显示全部楼层
原来2=2,4=4也算一种的话啊
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2010-3-31 22:14:06 | 显示全部楼层
有点意思   看看
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

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

GMT+8, 2024-4-25 03:01 , Processed in 0.046045 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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