私は2つのリストを入力してリストを出力する関数、polyprod(a、b)をPythonで書こうとしています。Pythonリストを使って多項式の積を計算する
リストは、その位置に関連付けられたxのべき乗の係数に対応するリスト内のエントリを持つ多項式です。以下のように、例えば、これらのリストは、多項式を表現する:
[1,1,1] = + X + X 2、[0,2,6] = 2X + 6× 1。
私たち例えば、我々はなるだろうので、私の機能は、製品を表すリストを任意の二つのようなリストを取り、出力したい:
はpolyprod([1,1,1]、[0,2、 6])= [0,2,8,8,6]、(1 + X + X )(2X + 6×)= 2X + 8X + 8X + 6X 以来4。
私はNumpyのconvolve関数を知っています。以下のコードを使って、成功していないことをエミュレートしようとしました。私はPythonにはかなり新しいので、これはおそらくかなり間違っている可能性があることを認識しています。
def polyprod(a,v):
prodav = [0]*(len(a)+len(v)-1)
if len(v) > len(a):
for n in range(len(a)):
for m in range(n+1):
prodav[n] += v[m]*a[n-m]
for n in range(len(v)):
for m in range(n+1):
prodav[n] += a[m]*v[n-m]
このコードで何が間違っていますか?標準ライブラリのみを使用して正しい結果を得るにはどうすればよいですか?
ただ、 '' numpy.trim_zeros(...、「F」)と左のゼロをトリム'numpy.convolve'を使用してください – percusse