べき乗の和を基本対称式で表す2

前回の記事に書いた因数分解の問題は、次の公式を使います。
x^3+y^3+z^3=(x+y+z)(x^2+y^2+z^2-xy-yz-zx)+3xyz
ここで、特に x+y+z=0 の場合を考えると
x^3+y^3+z^3 = 3xyz
となります。
したがって、前回の問題は
(a+b+c)^3+(d+e+f)^3+(-a-b-c-d-e-f)^3
と書けることから、因数分解すると
3(a+b+c)(d+e+f)(-a-b-c-d-e-f)
となります。

ところで、この問題を通して、次のことに気付きました。
x=0 のとき x=x
x+y=0 のとき x^2+y^2=(x+y)^2-2xy=-2xy
x+y+z=0 のとき x^3+y^3+z^3=3xyz
というわけで、次のような等式が成り立つことが予想されます。
x+y+z+w=0 のとき x^4+y^4+z^4+w^4=-4xyzw
しかし、残念ながらこれは成り立ちません。
例えば、x=y=z=1、w=-3 としてみれば反例が得られます。

そんなわけで、もうちょっと一般的に考えたときに、x_i^n の和が各 x_i の基本対称式としてどのように表されるのか、という問題を考えるに至りました。
それが分かれば、\sum_{i=1}^n x_i = 0 のときに \sum_{i=1}^n x_i^n がどのように表されるのか、という問題にも答えることができます。

さて、べき乗の和は基本対称式の組み合わせによって表すことができる、ということは、広く知られた事実です。
べき乗の和自体が対称式なのだから明らかですね。
Wikipediaの記事にも書いてあります。
まずは基本対称式とは何なのか、ということを簡単に説明すると、
x, y についての基本対象式は x+y, xy です。
x, y, z についての基本対称式は x+y+z, xy+yz+zx, xyz です。
要するに、各変数を高々1つだけ使うことを許して、同次の項の和を取ったもの、のことです。
変数の個数は本質的ではないので、n 次の項の和として表される基本対称式を e_n で表すことにします。
すると、次が成り立ちます。
\sum_{i=1}^n x_i^m = \sum_{\lambda \in \Lambda(m,n)}(-1)^{\sum_{i=1}^m (i-1) \lambda_i}\sum_{i=1}^m i \lambda_i \frac{\left(\sum_{j=1}^m \lambda_j-1\right)!}{\prod_{j=1}^m \lambda_j !}\prod_{j=1}^m e_j^{\lambda_j}
ここで、\Lambda(m,n) は、自然数 m の分割のうち、最大数が高々 n であるもの全体からなる集合を表します。
また、\lambda_i は分割 \lambda における自然数 i の個数です。

以上により、問題は解決です。
割と簡単な式が出てくるかと思いきや、そんなことはありませんでした。
結果を利用して、因数分解できるための一般論を簡単に展開できることを期待していたのですが…。

ちなみに、公式を Mathematica で実装すると次のようになります。


DeclarePackage["Combinatorica`", {"Partitions"}]
n = n の値;
m = m の値;
s = 0;
P = Partitions[n, m];
For[g = 1, g <= Length[P], g++,
code = (-1)^(Sum[(i - 1) Count[Pg, i], {i, 1, m}]);
coef = Sum[i Count[Pg,i] Factorial[Sum[Count[Pg, j], {j, 1, m}] - 1]/(Product[Factorial[Count[Pg, j]], {j, 1, m}]), {i, 1, m}];
s += code coef Product[If[Count[Pg, j] == 0, 1, e[j]^Count[Pg, j]], {j, 1,m}]
];
Print[s];