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/images/test13.png | Bin 0 -> 450345 bytes report/lab13/lab13.pdf | Bin 0 -> 501731 bytes report/lab13/lab13.tex | 75 +++++++++++++++++++++++++++++++++++++++++ report/lab13/maker.sh | 35 +++++++++++++++++++ 4 files changed, 110 insertions(+) create mode 100644 report/lab13/images/test13.png create mode 100644 report/lab13/lab13.pdf create mode 100644 report/lab13/lab13.tex create mode 100755 report/lab13/maker.sh (limited to 'report/lab13') diff --git a/report/lab13/images/test13.png b/report/lab13/images/test13.png new file mode 100644 index 0000000..97c5351 Binary files /dev/null and b/report/lab13/images/test13.png differ diff --git a/report/lab13/lab13.pdf b/report/lab13/lab13.pdf new file mode 100644 index 0000000..db6cbfa Binary files /dev/null and b/report/lab13/lab13.pdf differ 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} diff --git a/report/lab13/maker.sh b/report/lab13/maker.sh new file mode 100755 index 0000000..e847acf --- /dev/null +++ b/report/lab13/maker.sh @@ -0,0 +1,35 @@ +#!/bin/sh + +watch() { + [ -z "$1" ] && echo "Необходимо указать название основного документа" && help + set -o xtrace + latexmk -pdf -f -shell-escape -interaction=nonstopmode -pvc $1 +} + +doc() { + [ -z "$1" ] && echo "Необходимо указать название основного документа" && help + set -o xtrace + latexmk -pdf -f -shell-escape -interaction=nonstopmode $1 +} + +clean() { + set -o xtrace + rm -rf _minted-* + find . -name "*.aux" -exec rm {} \; + rm -f *.dvi *.fdb_latexmk *.fls *.log *.out *.toc +} + +help() { + echo "Использование:" + echo "./maker.sh watch .tex -> Запуск процесса, пересобирающего документ при изменениях" + echo "./maker.sh doc .tex -> Пересобрать документ" + echo "./maker.sh clean -> Удаление сгенерированных файлов" + exit 1 +} + +case "$1" in + watch) watch $2 ;; + doc) doc $2 ;; + clean) clean ;; + *) help ;; +esac -- cgit v1.2.3