Dati due elenchi di numeri interi non vuoti , l'invio deve calcolare e restituire la convoluzione discreta dei due. È interessante notare che se si considerano gli elementi della lista come coefficienti di polinomi, la convoluzione delle due liste rappresenta i coefficienti del prodotto dei due polinomi.
Definizione
Dati gli elenchi A=[a(0),a(1),a(2),...,a(n)]
e B=[b(0),b(1),b(2),...,b(m)]
(impostazione a(k)=0 for k<0 and k>n
e b(k)=0 for k<0 and k>m
), la convoluzione dei due viene definita come A*B=[c(0),c(1),...,c(m+n)]
dovec(k) = sum [ a(x)*b(y) for all integers x y such that x+y=k]
Regole
- È consentita qualsiasi formattazione di input e output per la tua lingua.
- Non sono consentiti incorporamenti per la convoluzione, la creazione di matrici di convoluzione, correlazione e moltiplicazione polinomiale.
Esempi
[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 non può essere ritenuto valido per[]*[] = ?
. La convoluzione non è ben definita su elenchi vuoti. Penso che dovresti garantire che gli elenchi di input siano vuoti.