正数的拆分问题

来源:百度知道 编辑:UC知道 时间:2024/05/30 15:59:58
假设有一个正数M,比如说是27,可以看成是另外若干的正数的和27=9+9+9=8+8+8+3等等,写成M=A1+A2+...+An
问:不管M取何值时,如何拆分才能使L=A1*A2*A3...An的值最大

回答出来后满意的追加200分!
理解错误了全都,我没说是正整数,比如10可以拆分成10=2.5+2.5+2.5+2.5
所得的乘积最大是39.0625
按照你们的算法是最大只有36了

如果M能被3整除,就分成M/3个3
如果M除以3余数是2,则分成1个2,其他的分成(m-2)/3个3
如果M除以3余数是1,则分成2个2,其他的分成(m-4)/3个3

若M = 3n,则Max(L)= 3^n
若M = 3n + 1, 则Max(L)= 4*3^(n-1)
若M = 3n + 2, 则Max(L)= 2*3^n
如需证明过程,在下可以补上!

这里面涉及到一个定理:
A1+A2+...+An
>=n*(A1*A2*A3...An)^(1/n)
所以,当A1=A2=A3=……=An时L有最大值
由于A1,A2,.....An都是整数,
可取A1=A2=....=An=[M/n](M对n取整)
再将M对n的余数依次分摊到前几个数上,每个都加一,
直到把余数加到零为止。

如果不要求拆得的数也是整数,直接取
A1=A2=....=An=M/n就行了