Bei zwei nicht leeren Listen mit ganzen Zahlen sollte Ihre Übermittlung die diskrete Faltung der beiden berechnen und zurückgeben . Wenn Sie Listenelemente als Koeffizienten von Polynomen betrachten, repräsentiert die Faltung der beiden Listen interessanterweise die Koeffizienten des Produkts der beiden Polynome.
Definition
In Anbetracht der Listen A=[a(0),a(1),a(2),...,a(n)]
und B=[b(0),b(1),b(2),...,b(m)]
(Setzen a(k)=0 for k<0 and k>n
und b(k)=0 for k<0 and k>m
) ist die Faltung der beiden als A*B=[c(0),c(1),...,c(m+n)]
wo definiertc(k) = sum [ a(x)*b(y) for all integers x y such that x+y=k]
Regeln
- Beliebige bequeme Eingabe- und Ausgabeformate für Ihre Sprache sind zulässig.
- Integrierte Funktionen für Faltung, Erstellung von Faltungsmatrizen, Korrelation und Polynommultiplikation sind nicht zulässig.
Beispiele
[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]*[] = []
und kann möglicherweise nicht für gelten[]*[] = ?
. Faltung ist in leeren Listen nicht genau definiert. Ich denke, Sie sollten garantieren, dass die Eingabelisten nicht leer sind.