最优分解问题 | 贪心

最优分解问题:给定一个整数n,将n分成若干个不相同的自然数之和,使得这些自然数的乘积最大。


1、贪心策略

首先,若分解成两个自然数之和,有如下定理:

根绝均值不等式的成立条件可知,若 a + b = const,则 |a - b| 越小,a·b越大。 

推广到分解成若干个自然数之和的情况: 

将正整数n分解为若干互不相同的自然数的和,同时又要使自然数的乘积最大。

  • 当 n < 4 时:对n的分解的乘积是小于n的,应该选择不分解。
  • 当 n >= 4时:n = 1 + (n - 1) < n,所以至少要从2开始分解:n = a + (n - a), 2 ≤ a ≤ n - 2,可以保证乘积大于n,即越分解乘积越大。   

基于以上分析与结论,我们可以得到贪心策略将n分成从2开始的连续自然数的和,如果最后剩下一个数,将此数在后项优先的方式下均匀地分给前面各项。 
:该贪心策略首先保证了正整数所分解出的因子之差的绝对值最小,即|a - b|最小;同时又可以将其分解成尽可能多的因子,且因子的值较大,确保最终所分解的自然数的乘积可以取得最大值。 


2、严格证明

以上可以说是猜想吧,下面给出严格证明:

最优分解问题 | 贪心_第1张图片

最优分解问题 | 贪心_第2张图片

 

你可能感兴趣的:(#,⑤贪心算法)