====== HW08 - Dělení polynomů ====== ^ Termín odevzdání | 18.12.2023 23:59 CET | ^ Bodový zisk | 4b+2b revize kódu | ===== 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 [[https://docs.python.org/3/library/fractions.html|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)$