PEをMathematicaで

Project Eulerに挑戦してみよう

Project Euler 190 / 加重積の最大化

Sm = (x1, x2, ..., xm) を
x1 + x2 + ... + xm = m
かつ
Pm = x1^1 * x2^2 * ... * xm^m を最大にする m 項の正の実数の組とする。たとえば [P10] = 4112 である([ ]は実数の整数部分を取り出す関数)。

2 ≤ m ≤ 15について Σ[Pm] を求めよ。

Problem 190 - Project Euler


ラグランジェの未定乗数法を使います。Pm の log をとって,

 f=\log x_1+\cdots+m\log x_m+\lambda (x_1+\cdots+x_m-m)

を考えます。計算は省略しますが,Pm は

 x_k=\dfrac{2k}{m+1}

で最大になります。理系の大学生なら誰にでも解けそうな問題でした。