[讨论]一个数分解的乘积问题。
一个任意正整数N,把它分解为任意个整数,这些整数和等于N,请问如何分解,使这些整数的乘积最大?可以在数学,算法上讨论,不用拿出源代码,不过自己可以编程出来看看是否通过.
[此贴子已经被作者于2007-10-15 22:56:18编辑过]
1.一切大于1的数都可以用2,3的和来分解.
2.假设a=b+c,其中得到的b*c最大
同时,b,c也可以这样分解.(递归)
现在来证明用2,3分解得到的数最大
从4 (从4开始都是这样)分解当然是2,2,所有加数为4的都应该分解为2,2才可以得到最大.
反证:
假设任意一个数分解成若干数的和能得到最大的乘积(其中这些因子不包含3,2)
则 这些加数一定可以分解成2,3的组合(根据第一条),再根据第二条,既然可以分解成2,3使得得到的乘积是最大的
那就证明了因子不是2,3是错误的.
所以每个数要分解成2,3的组合才能得到最大.
具体怎么样的组合才可以得到最大那就是贪心.
仅当被分解的数不小于2,就用3分解.直到0.