Mnożenie wielomianów

Zadanie 4 z 7 · rozdział 14Trudność: 2 z 3funkcjewielomianykonwolucja

Treść zadania

Napisz funkcję iloczyn_wielomianow(a, b), która otrzymuje listy współczynników dwóch wielomianów i zwraca listę współczynników ich iloczynu.

Program wczytuje oba wielomiany, wywołuje funkcję i wypisuje współczynniki wyniku.

Dane wejściowe

  • 1. linia: n — stopień pierwszego wielomianu (n ≥ 0)
  • 2. linia: n+1 liczb całkowitych a_n ... a_0
  • 3. linia: m — stopień drugiego wielomianu (m ≥ 0)
  • 4. linia: m+1 liczb całkowitych b_m ... b_0

Dane wyjściowe

Jedna linia: dokładnie n + m + 1 liczb całkowitych — współczynniki iloczynu od najwyższej potęgi, oddzielone spacją.

Ograniczenia

  • 0 ≤ n, m ≤ 10
  • -100 ≤ a_i, b_i ≤ 100

Uwagi

  • Każdy wyraz pierwszego wielomianu mnożymy przez każdy wyraz drugiego: $a_i x^i \cdot b_j x^j = a_i b_j x^{i+j}$. Utwórz listę n + m + 1 zer i dla każdej pary pozycji i (w liście a) oraz j (w liście b) dodaj a[i] * b[j] do pozycji i + j wyniku.

Przykład

Wejście
3
5 0 10 6
2
1 2 4
Wyjście
5 10 30 26 52 24

$(5x^3 + 10x + 6)(x^2 + 2x + 4) = 5x^5 + 10x^4 + 30x^3 + 26x^2 + 52x + 24$.

Zasady obowiązujące w rozdziale 14

Poniższe zadania dotyczą pisania funkcji operujących na wielomianach. Wielomian zapisujemy jako listę jego współczynników od najwyższej potęgi do wyrazu wolnego: lista [a_n, a_{n-1}, ..., a_1, a_0] oznacza wielomian $a_n x^n + a_{n-1} x^{n-1} + \dots + a_1 x + a_0$.

Konwencje wspólne:

  • Każde zadanie to osobny program: czyta standardowe wejście i wypisuje wynik na standardowe wyjście. Główną pracę wykonuje funkcja opisana w treści zadania — program tylko wczytuje dane, wywołuje funkcję i wypisuje wynik (gotowy szkielet znajdziesz w sekcji „Kod startowy”).
  • Wielomian stopnia n jest podawany w dwóch liniach: najpierw liczba n, a w następnej linii n+1 liczb całkowitych a_n a_{n-1} ... a_0 oddzielonych spacjami.
  • Współczynniki są liczbami całkowitymi (mogą być ujemne). Dla n ≥ 1 współczynnik a_n jest różny od zera.
  • Gdy wynikiem jest wielomian, wypisz jego współczynniki od najwyższej potęgi w jednej linii, oddzielone pojedynczą spacją, bez nawiasów i przecinków.
  • Program nie wypisuje komunikatów typu „Podaj liczbę:”.

Zadanie pochodzi z otwartego zbioru Nauka-Programowania (z rozwiązaniami wzorcowymi). Zgłoś błąd w treści lub testach.

Python uruchomi się w przeglądarce przy pierwszym teście.

Kod zapisuje się automatycznie w tej przeglądarce. Tab wstawia wcięcie; aby opuścić edytor klawiaturą, naciśnij Esc, a potem Tab.

Testy

Program dostaje „Wejście” przez input() i musi wypisać „Oczekiwane wyjście”. Liczby porównywane są z tolerancją 0,01, a tekst podany w input("…") nie jest sprawdzany.

Test 1

Nie uruchomiono
Wejście
1
1 2
1
3 4
Oczekiwane wyjście
3 10 8

Test 2

Nie uruchomiono
Wejście
0
5
2
1 0 -1
Oczekiwane wyjście
5 0 -5

Test 3

Nie uruchomiono
Wejście
1
1 -1
1
1 1
Oczekiwane wyjście
1 0 -1

Test 4

Nie uruchomiono
Wejście
2
2 0 1
1
1 1
Oczekiwane wyjście
2 2 1 1

Test 5

Nie uruchomiono
Wejście
0
-2
0
3
Oczekiwane wyjście
-6
Uruchom z własnymi danymi