剪绳子最大乘积是一道经典的动态规划例题,但是书上和网上的资料都没有证明为什么剪出来的绳子长度为2和3时绳子长度的乘积最大。其实这道题和自然对数的底数e有关,下面给出证明。
给定一根长度为 n n n的绳子,请把绳子剪成 m m m段( m m m、 n n n都是整数, n > 1 n>1 n>1并且m>1),每段绳子的长度记为 k 0 , k 1 , . . . , k m k_{0},k_{1},...,k_{m} k0,k1,...,km。请问 k 0 , k 1 , . . . , k m k_{0},k_{1},...,k_{m} k0,k1,...,km。可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度为2、3、3的3段,得到最大的乘积18。
长度为 n n n的绳子,把绳子剪成 m m m段( m m m、 n n n都是整数, n > 1 n>1 n>1并且m>1),每段绳子的长度记为 k 0 , k 1 , . . . , k m k_{0},k_{1},...,k_{m} k0,k1,...,km。使 k 0 , k 1 , . . . , k m k_{0},k_{1},...,k_{m} k0,k1,...,km的乘积最大。
尽量将绳子剪成3、剩余部分剪成2的时候,每段长度乘积最大。
需证明无论 m m m的值是多少,每段绳子的长度为 n m \frac{n}{m}\quad mn时,所得乘积为此 m m m下的最大值。证明:m段长度是 n m \frac{n}{m}\quad mn的线段乘积为: ( n m ) m (\frac{n}{m}\quad)^{m} (mn)m。另其中一段长度多出 δ \delta δ,则另一段的长度减少 δ \delta δ,长度乘积变为:
( n m ) m − 2 ⋅ ( n m + δ ) ⋅ ( n m − δ ) = ( n m ) m − δ 2 ⋅ ( n m ) m − 2 < ( n m ) m (\frac{n}{m}\quad )^{m-2} \cdot(\frac{n}{m}\quad+\delta)\cdot(\frac{n}{m}\quad-\delta)=(\frac{n}{m}\quad)^{m} -\delta^{2}\cdot(\frac{n}{m}\quad )^{m-2} <(\frac{n}{m}\quad)^{m} (mn)m−2⋅(mn+δ)⋅(mn−δ)=(mn)m−δ2⋅(mn)m−2<(mn)m
需证明当 m = n e m=\frac{n}{e}\quad m=en,且每段绳子长度相等时,绳子长度乘积最大,e是自然对数的底数。
长度乘积表达式 ( n m ) m (\frac{n}{m}\quad)^{m} (mn)m对 m m m求导:
[ ( n m ) m ] ′ = [ e m ( l n ( n ) − l n ( m ) ) ] ′ [(\frac{n}{m}\quad)^{m} ]'=[e^{m(ln(n)-ln(m))}]' [(mn)m]′=[em(ln(n)−ln(m))]′ = [ e m ( l n ( n ) − l n ( m ) ) ] ⋅ [ m l n ( n ) − m l n ( m ) ] ′ =[e^{m(ln(n)-ln(m))}] \cdot [mln(n)-mln(m)]' =[em(ln(n)−ln(m))]⋅[mln(n)−mln(m)]′ = [ e m ( l n ( n ) − l n ( m ) ) ] ⋅ [ l n ( n ) − l n ( m ) − 1 ] =[e^{m(ln(n)-ln(m))}] \cdot [ln(n)-ln(m)-1] =[em(ln(n)−ln(m))]⋅[ln(n)−ln(m)−1]
当导数为零时,函数有极值。令 l n ( n ) − l n ( m ) − 1 = 0 ln(n)-ln(m)-1=0 ln(n)−ln(m)−1=0 l n ( m ) = l n ( n ) − 1 ln(m)=ln(n)-1 ln(m)=ln(n)−1 l n ( m ) = l n ( n ) l n ( e ) ln(m)=\frac{ln(n)}{ln(e)}\quad ln(m)=ln(e)ln(n) m = n e m=\frac{n}{e}\quad m=en可用二阶导数证明此极值点是一个极大值点。所以将绳子分割成 n e \frac{n}{e}\quad en段,每段长为 e e e时,绳子长度的乘积最大。但是题目要求将每段绳子都是整数,所以尽量取最接近 e e e的整数3作为绳子的长度。若绳子长度不足3,则尽量取2。也就是说,如果绳子长度为5,分割成(2,3)两段,如果绳子长度为4,分割成(2,2)两段。