2016-12-12 16 views
0

を入力してください。func(n)a^ib^jc^kを取得します。(a+b+c)^nを入力してください。expand(a + b + c)^ nから

例:

n = 1、その後(a + b + c)^1 = a + b + cfunc(n)リターン{a, b, c}

n = 2の場合、(a + b + c)^2 = a^2 + b^2 + c^2 + 2ab + 2bc + 2cafunc(n)は返信{a^2, b^2, c^2, ab, bc, ca}です。

私は3つのループを使用するソリューションを持っていますが、それはいいとは思わない、誰かが私を助けることができます。どうもありがとうございます。

答えて

1

メープルでプログラミングのいくつかの並べ替えを行うにはprocショートプロシージャを使用することができます。

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

ここで、あなたが望むものが得られるかどうかを確認しましょう。

ftn(1); 

{B、C}

ftn(2); 

{A^2、B^2、C^2、2 * Bを、2 * C、2 * B * C}

あなたがabacbcの一定の係数をしたくないなら、あなたはTHIを行うことができますS

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、B、 C、B * C]

+0

おかげで、あなたは非常に多くの。 – Fzen

+0

@Fzenこれがあなたの質問に対する答えなら、それは答えなのですか? – zhk

+0

あなたの答えは私が欲しかったものでした。ありがとうございます。 – Fzen

関連する問題