从展开 (a+b+c)^n 得到 a^ib^jc^k

Get a^ib^jc^k from expand (a+b+c)^n

我想写一个函数 func(n) 从展开 (a+b+c)^n 得到 a^ib^jc^k

示例:

n = 1 然后 (a + b + c)^1 = a + b + cfunc(n) return {a, b, c}.

n = 2 然后 (a + b + c)^2 = a^2 + b^2 + c^2 + 2ab + 2bc + 2cafunc(n) return {a^2, b^2, c^2, ab, bc, ca}.

我有使用三个循环的解决方案,但我认为这不太好,有人可以帮助我。非常感谢。

在 maple 中,您可以使用 proc 程序的缩写来进行某种编程。

restart:
ftn:= proc(n)
     expand((a+b+c)^n);
     {op(%)};
     end;

现在让我们试试看是否得到你想要的。

ftn(1);

{a, b, c}

ftn(2);

{a^2, b^2, c^2, 2*a*b, 2*a*c, 2*b*c}

如果你不想要 abacbc 的常数系数,那么你可以这样做

restart:
ftn:= proc(n)
     expand((a+b+c)^n);
     convert([coeffs(%,[a,b,c],'powers')],array):
    convert({powers},list);
     end;
ftn(2);

[a^2, b^2, c^2, ab, ac, b*c]