Dadas duas listas de números inteiros não vazias , seu envio deve calcular e retornar a convolução discreta dos dois. Curiosamente, se você considerar os elementos da lista como coeficientes de polinômios, a convolução das duas listas representa os coeficientes do produto dos dois polinômios.
Definição
Dadas as listas A=[a(0),a(1),a(2),...,a(n)]e B=[b(0),b(1),b(2),...,b(m)](definição a(k)=0 for k<0 and k>ne b(k)=0 for k<0 and k>m), a convolução das duas é definida como A*B=[c(0),c(1),...,c(m+n)]ondec(k) = sum [ a(x)*b(y) for all integers x y such that x+y=k]
Regras
- Qualquer formatação conveniente de entrada e saída para o seu idioma é permitida.
- Não são permitidos embutidos para convolução, criação de matrizes de convolução, correlação e multiplicação polinomial.
Exemplos
[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]*[] = []e não pode ser válido para[]*[] = ?. A convolução não está bem definida em listas vazias. Eu acho que você deve garantir que as listas de entrada não sejam vazias.