给定两个非空的整数列表,您的提交应计算并返回二者的离散卷积。有趣的是,如果您将列表元素视为多项式的系数,则两个列表的卷积代表两个多项式的乘积的系数。
定义
给定列表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
),则两者的卷积被定义为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]*[] = []
,也不能满足于[]*[] = ?
。卷积在空列表中定义不明确。我认为您应该保证输入列表是非空的。