0190 最大加权积
* * * *
拉格朗日计划
* * * *
最大加权积

设$x_1, x_2, … , x_m$都是正实数,记$P_m$为$x_1 x_2^2x_m^m$在约束条件$x_1 + x_2 + … + x_m=m$下能取得的最大值。

例如,可以验证,$\lfloor P_{10}\rfloor= 4112$。

求$\sum_{m=2}^{15}\lfloor P_m\rfloor$。

本题难度:



解答

本题是拉格朗日乘数的标准习题。令 $$f(x_1,\ldots,x_m)=x_1 x_2^2x_m^m, \quad g(x_1,\ldots,x_m)=x_1 + x_2 + … + x_m-m,$$ 则最值点可由 $$\begin{cases}\nabla f(x_1,\ldots,x_m)=\lambda \nabla g(x_1,\ldots,x_m), \\ g(x_1,\ldots,x_m)=0,\end{cases}$$ 求得。

展开第一个关于梯度的方程得 $$x_2^2\ldots x_m^m=2x_1x_2x_3^3\ldots x_m^m=3x_1x_2^2x_3^2x_4^4\ldots x_m^m=\ldots=mx_1x_2^2\ldots x_{m-1}x_m^{m-1}=\lambda,$$ 即 $$\frac{x_i}{x_j}=\frac{i}{j},$$ 取$j=m$代入约束条件即可解得 $$x_i=\frac{2i}{m+1},$$ 从而结果为$371048281$。

注:本题涉及的知识是我国理工科《高等数学》课程的标准内容。

注2:以下为Python 3代码,因math.prod是Python 3中的新函数。

import math
print(sum(int(1.0*(1<<(m*(m+1)//2))*math.prod(i**i for i in range(1,m+1))/((m+1)**(m*(m+1)//2))) for m in range(2,16)))