Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 3933|回复: 11

[已解决]VBA计算若干个正整数之和为N

[复制链接]
发表于 2016-3-5 16:39 | 显示全部楼层 |阅读模式

VBA计算若干个正整数之和为N


VBA计算若干个正整数之和为N,其中N小于2000,求它们乘积的最大值及该最大值的位数K

分析:当N MOD 3=1 ,N可分解为一个4和若干个3的和

当N MOD 3=2,N可分解为一个2和若干个3的和

当N MOD 3=0 ,N可分解为若干个3的和


这一分解方法,因数乘积必定最大

最佳答案
2016-3-7 15:32
这个最大乘积的分解原理是正确的。

因为乘积最大,肯定是x^n效率最高。其中n>x,x>1

x=2 和x=4 分解等效。即 2*2=2^2

又,5=2+3 但是显然 5< 2^3<3^2 所以 x=3时效率最高。

因此,N的分解为以x=3为基数,
余数=0时 N分解为x=N/3;M=3^Int(N/3)
余数=1时 N分解为x=Int(N/3)+1; M=3^(Int(N/3)-1)*4 ……因为单独的1效率最低,改成1+3=4
余数=2时 N分解为x=Int(N/3)+2 ;M=3^Int(N/3)*2

以上。
发表于 2016-3-5 17:58 | 显示全部楼层
回复

使用道具 举报

发表于 2016-3-7 14:59 | 显示全部楼层
本帖最后由 香川群子 于 2016-3-7 15:17 编辑

最大值的位数可以用对数方法求得。

比如,N=2000 可分解为=666*3+2
因此最大乘积M=3^666*2
取对数=Log(M)=666*Log(3)+Log(2)=666*0.477121255+0.301029996=318.0637856

因此,最大乘积M应该是个319位的十进制大数。
对数法求得近似值M=10^0.0637856*10^318=1.15820554270079E+318


实际M=
11582055427008807921024918404791010241020025827937
72704584733914444718910821927658017435931894066510
35056031470223227017963614778798091655505798239627
77040807376980141578702323880874195833600289315105
54009888538490870364748998744167801507138849803788
62214471143074034842428740038635440182511235562836
7933975646905263058

评分

参与人数 1 +6 收起 理由
vbyou127 + 6

查看全部评分

回复

使用道具 举报

发表于 2016-3-7 15:32 | 显示全部楼层    本楼为最佳答案   
这个最大乘积的分解原理是正确的。

因为乘积最大,肯定是x^n效率最高。其中n>x,x>1

x=2 和x=4 分解等效。即 2*2=2^2

又,5=2+3 但是显然 5< 2^3<3^2 所以 x=3时效率最高。

因此,N的分解为以x=3为基数,
余数=0时 N分解为x=N/3;M=3^Int(N/3)
余数=1时 N分解为x=Int(N/3)+1; M=3^(Int(N/3)-1)*4 ……因为单独的1效率最低,改成1+3=4
余数=2时 N分解为x=Int(N/3)+2 ;M=3^Int(N/3)*2

以上。

评分

参与人数 1 +6 收起 理由
vbyou127 + 6 来学习

查看全部评分

回复

使用道具 举报

发表于 2016-3-7 16:36 | 显示全部楼层
香川群子 发表于 2016-3-7 15:32
这个最大乘积的分解原理是正确的。

因为乘积最大,肯定是x^n效率最高。其中n>x,x>1

你好、在嘛

评分

参与人数 1 +6 收起 理由
vbyou127 + 6

查看全部评分

回复

使用道具 举报

发表于 2016-3-7 17:10 | 显示全部楼层
香川群子 发表于 2016-3-7 15:32
这个最大乘积的分解原理是正确的。

因为乘积最大,肯定是x^n效率最高。其中n>x,x>1

求助~~~
回复

使用道具 举报

发表于 2016-3-7 17:59 | 显示全部楼层
蝶·舞 发表于 2016-3-5 17:58
简单的数学法,根本用不到VBA

求助
回复

使用道具 举报

 楼主| 发表于 2016-3-7 18:02 | 显示全部楼层
ColinLee_ 发表于 2016-3-7 17:10
求助~~~

香勤,神出鬼没,你求助她
回复

使用道具 举报

发表于 2016-3-8 10:11 | 显示全部楼层
vbyou127 发表于 2016-3-7 18:02
香勤,神出鬼没,你求助她

真的要求助啊~
回复

使用道具 举报

 楼主| 发表于 2016-3-8 13:19 | 显示全部楼层
ColinLee_ 发表于 2016-3-8 10:11
真的要求助啊~

求助什么,讲来听听
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-26 06:22 , Processed in 0.392708 second(s), 19 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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