Biorąc pod uwagę dwie niepuste listy liczb całkowitych, twoje zgłoszenie powinno obliczyć i zwrócić dyskretny splot tych dwóch. Co ciekawe, jeśli weźmiesz pod uwagę elementy listy jako współczynniki wielomianów, splot dwóch list reprezentuje współczynniki iloczynu dwóch wielomianów.
Definicja
Biorąc pod uwagę listy A=[a(0),a(1),a(2),...,a(n)]i B=[b(0),b(1),b(2),...,b(m)](ustawienie a(k)=0 for k<0 and k>ni b(k)=0 for k<0 and k>m), splot dwóch jest zdefiniowany jako A*B=[c(0),c(1),...,c(m+n)]gdziec(k) = sum [ a(x)*b(y) for all integers x y such that x+y=k]
Zasady
- Dozwolone jest dowolne wygodne formatowanie danych wejściowych i wyjściowych dla twojego języka.
- Wbudowane splot, tworzenie macierzy splotów, korelacja i mnożenie wielomianowe są niedozwolone.
Przykłady
[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]*[] = []i nie może być możliwe[]*[] = ?. Konwolucja nie jest dobrze zdefiniowana na pustych listach. Myślę, że powinieneś zagwarantować, że listy wejściowe są niepuste.