思维
已知a + b + c + …+ n的和sum,求abc..n乘积的最大值
结论:尽可能让a,b,c…=3;
解题思路:
设将长度为 n 的竹子切为 a 段:
n=n1+n2+…+na
本题等价于求解:
max(n1×n2×…×na)
以下数学推导总体分为两步:(1) 当所有绳段长度相等时,乘积最大。(2) 最优的绳段长度为 3 。
数学推导:
以下公式为“算术几何均值不等式” ,等号当且仅当 n1=n2=…=na时成立。
$\frac{n_1 + n_2 + … + n_a}{a} \geq \sqrt[a]{n_1 n_2 … n_a}$
推论一: 将竹子 以相等的长度等分为多段 ,得到的乘积最大。
设将竹子按照 x 长度等分为 a 段,即 n=ax,则乘积为 x^a^ 。观察以下公式,由于 n 为常数,因此当$x^{\frac{1}{x}}$取最大值时, 乘积达到最大值。
$x^a = x^{\frac{n}{x}}={x^{\frac{1}{x}}}^n$
根据分析,可将问题转化为求$y=x^{\frac{1}{x}}$ 的极大值,因此对 x求导数。
易得驻点为 x0=e≈2.7.由于切分长度 x必须为整数,最接近 e 的整数为 2 或 3 。如下式所示,代入 x=2和 x=3,得出 x=3 时,乘积达到最大。
推论二: 尽可能将竹子以长度 3 等分为多段时,乘积最大。
切分规则:
最优: 3 。把竹子尽可能切为多个长度为 3 的片段,留下的最后一段竹子的长度可能为 0,1,2 三种情况。
次优: 2 。若最后一段竹子长度为 2 ;则保留,不再拆为 1+1 。
最差: 1 。若最后一段竹子长度为 1;则应把一份 3+1替换为 2+2,因为 2×2>3×1。
作者:Krahets
链接:https://leetcode.cn/problems/jian-sheng-zi-lcof/solutions/104809/mian-shi-ti-14-i-jian-sheng-zi-tan-xin-si-xiang-by/