从展开 (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 + c
和 func(n)
return {a, b, c}
.
当 n = 2
然后 (a + b + c)^2 = a^2 + b^2 + c^2 + 2ab + 2bc + 2ca
和 func(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}
如果你不想要 ab
、ac
和 bc
的常数系数,那么你可以这样做
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]
我想写一个函数 func(n)
从展开 (a+b+c)^n
得到 a^ib^jc^k
。
示例:
当 n = 1
然后 (a + b + c)^1 = a + b + c
和 func(n)
return {a, b, c}
.
当 n = 2
然后 (a + b + c)^2 = a^2 + b^2 + c^2 + 2ab + 2bc + 2ca
和 func(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}
如果你不想要 ab
、ac
和 bc
的常数系数,那么你可以这样做
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]