最大加权积
|
设$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)))
|
| |