我想从展开func(n)
编写一个函数a^ib^jc^k
get (a+b+c)^n
。
示例:
当n = 1
然后(a + b + c)^1 = a + b + c
和func(n)
返回{a, b, c}
时。
当n = 2
然后(a + b + c)^2 = a^2 + b^2 + c^2 + 2ab + 2bc + 2ca
和func(n)
返回{a^2, b^2, c^2, ab, bc, ca}
时。
我有使用三个循环的解决方案,但认为它不好,有人可以帮助我。非常感谢你。
答案 0 :(得分:1)
在枫木做某种编程时,你可以使用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,a b,a c,b * c]