From 0be2be0a92f992bf8ee9eff701cb19658a1e7544 Mon Sep 17 00:00:00 2001 From: Andrew Guschin Date: Thu, 29 Dec 2022 15:20:32 +0400 Subject: =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D1=8B?= =?UTF-8?q?=20=D0=BB=D0=B0=D0=B1=D1=8B=208-15?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- report/lab13/lab13.tex | 75 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 report/lab13/lab13.tex (limited to 'report/lab13/lab13.tex') diff --git a/report/lab13/lab13.tex b/report/lab13/lab13.tex new file mode 100644 index 0000000..61101c7 --- /dev/null +++ b/report/lab13/lab13.tex @@ -0,0 +1,75 @@ +\documentclass[a4paper,oneside]{article} + +\usepackage[utf8]{inputenc} +\usepackage[T2A]{fontenc} +\usepackage[english,russian]{babel} + +\usepackage{amsmath} +\usepackage{mathtools} +\usepackage{amsfonts} +\usepackage{enumitem} +\usepackage{amsthm} +\usepackage{minted} +\setminted{fontsize=\small, breaklines=true, style=emacs, linenos} +\usepackage{graphicx} +\graphicspath{ {./images/} } +\usepackage{float} + +\newtheorem{theorem}{Теорема}[subsection] +\newtheorem*{theorem*}{Теорема} + +% --- Определение --- % +\theoremstyle{definition} +\newtheorem{definition}{Определение}[subsection] +\newtheorem*{definition*}{Определение} +% ------------------- % + +\title{{Алгоритмы алгебры и теории чисел}\\{Лабораторная работа №13}} +\author{Гущин Андрей, 431 группа, 1 подгруппа} +\date{\the\year{} г.} + +\begin{document} + +\maketitle + +\section{Задача} + +Реализация алгоритма полиномиального деления (PDF). + + +\section{Алгоритм} + +На вход алгоритма подаются многочлены $p_1(x) = \sum_0^m c_i x^i$ и $p_2(x) = +\sum_0^n d_i x^i$ над полем $m \geq n \geq 0$ и $d_n \neq 0$. Этот алгоритм +будет работать и над областью целостности $J$ при условии, что $d_n$ обратим в +$J$. + +В результате получаем частное $q(x) = \sum_0^{m - n} q_i x^i$ и остаток $r(x) = +\sum_0^{n - 1} r_i x^i$, обладающие свойством евклидовости. + +В общем виде алгоритм можно представить следующим образом: +\begin{enumerate} + \item + Основной цикл: для $k$ от $m - n$ до $0$ выполнять $q_k = c_{n + k} + \cdot d_n^{-1}$, для $j$ от $n + k - 1$ до $k$ выполнять $c_j = c_j - + q_k \cdot d_{j - k}$. + \item + Выход: вернуть $q_i$, где $i = 0, 1, \dots, m - n$, и коэффициенты + полинома $q(x)$, вычисленного на шаге $1$, и $r_j$, где $i = 0, 1, + \dots, n - 1$, коэффициенты полинома $r(x)$, где $r_j = c_j$ (где $c_j$ + также вычислены на шаге $1$). +\end{enumerate} + + +\section{Реализация} +\inputminted{python}{../../lab13/lab13.py} + + +\section{Тестирование} +\begin{figure}[H] + \centering + \includegraphics[width=0.8\textwidth]{test13.png} +\end{figure} + + +\end{document} -- cgit v1.2.3