找回密码
 欢迎注册
查看: 89778|回复: 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-12-4 02:01 , Processed in 0.026792 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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