HW08 - Dělení polynomů

Termín odevzdání 18.12.2022 23:59 CET
Bodový zisk 4b+2b

Zadání

Napište program pro dělení dvou polynomů a to bez použití knihovny numpy (4b), nebo s jejím použitím (2b). Polynomy jsou reprezentovány seznamy, tedy polynom $a_0 + a_1 x + a_2 x^2 + \ldots + a_n x^n$ je reprezentován seznamem [$a_0,\ a_1,\ a_2,\ ... a_n$]. Vstupní polynomy mohou být různého stupně.

Poznámky:

  • Poslední koeficient $a_i$ nesmí být roven nule pokud $i > 0$
  • Tedy například: polynom $1 + 2x$ je vypsán jako [1, 2], nikoliv jako [1, 2, 0] nebo [1, 2, 0, 0].
  • Polynom $0$ (tj. $a_0=0$) musí být vypsán jako '0'.
  • Polynom $0 + 3x^3$ je vypsán jako [0, 0, 0, 3]. Výpisy typu [0, 0, 0, 3, 0, 0] nebo [0, 0, 0, 3, 0, 0, 0, 0, 0] nejsou správné.
  • Výstupní koeficienty jsou opět celá čísla.
Výsledek je celočíselný polynom. Aby Vám výpočet vyšel, použijte vnitřní typ Fraction.

Odevzdání

Do systému BRUTE odevzdávejte soubor pojmenovaný polynom.py. V tomto souboru budou funkce vypocet_python(data) a vypocet_numpy(data). Návratovou hodnotou funkce bude slovník, který obsahuje koeficienty polynomu, který vznikne vydělením prvního vstupního polynomu druhým vstupním polynomem a zbytek po dělení.

Příklady

prvni = [0, 12, -2, -4]
druhy = [3, -2]
 
ret = vypocet_python({'prvni': prvni, 'druhy': druhy})
 
ret['vysledek'] = [0, 4, 2]
ret['zbytek'] = [0] 

Komentář: neboť $(0 + 4x + 2x^2)(3-2x) = 0+ 12x -2x^2 -4x^3$.

prvni = [5, -3, 6, 2, -8]
druhy = [2, 0, 3, 4]
 
ret = vypocet_python({'prvni': prvni, 'druhy': druhy})
 
ret['vysledek'] = [2, -2]
ret['zbytek'] = [1, 1] 

Komentář: neboť $(2 - 2x)(2 +3x^2+4x^3)+(1+x) = 5 -3x +6x^2 +2x^3 -8x^4$, nebo $(2 - 2x)(2 +3x^2+4x^3) = (5 -3x +6x^2 +2x^3 -8x^4) - (1+x)$

courses/bab37zpr/hw/hw08.txt · Last modified: 2022/12/04 15:03 by viteks