整数の2つの空でないリストが与えられた場合、サブミットは2つの離散畳み込みを計算して返す必要があります。興味深いことに、リスト要素を多項式の係数と考えると、2つのリストの畳み込みは2つの多項式の積の係数を表します。
定義
リストA=[a(0),a(1),a(2),...,a(n)]
とB=[b(0),b(1),b(2),...,b(m)]
(設定a(k)=0 for k<0 and k>n
とb(k)=0 for k<0 and k>m
)が与えられると、2つの畳み込みは次のようA*B=[c(0),c(1),...,c(m+n)]
に定義されます。c(k) = sum [ a(x)*b(y) for all integers x y such that x+y=k]
ルール
- ご使用の言語の便利な入出力フォーマットが許可されます。
- 畳み込み、畳み込み行列の作成、相関、多項式乗算の組み込みは許可されていません。
例
[1,1]*[1] = [1,1]
[1,1]*[1,1] = [1,2,1]
[1,1]*[1,2,1] = [1,3,3,1]
[1,1]*[1,3,3,1] = [1,4,6,4,1]
[1,1]*[1,4,6,4,1] = [1,5,10,10,5,1]
[1,-1]*[1,1,1,1,1] = [1,0,0,0,0,-1]
[80085,1337]*[-24319,406] = [-1947587115,7,542822]
[1,1]*[] = []
には当てはまらず、に対しても当てはまらない可能性があります[]*[] = ?
。畳み込みは、空のリストでは明確に定義されていません。入力リストが空でないことを保証する必要があると思います。