summaryrefslogtreecommitdiff
path: root/report/lab13
diff options
context:
space:
mode:
authorAndrew Guschin <guschin.drew@gmail.com>2022-12-29 15:20:32 +0400
committerAndrew Guschin <guschin.drew@gmail.com>2022-12-29 15:20:32 +0400
commit0be2be0a92f992bf8ee9eff701cb19658a1e7544 (patch)
tree5d855004fd8cc067a594475c0a666eb01f0ceefa /report/lab13
parent056f59346b727c9367998a423551eaba52854fce (diff)
Добавлены лабы 8-15HEADmaster
Diffstat (limited to 'report/lab13')
-rw-r--r--report/lab13/images/test13.pngbin0 -> 450345 bytes
-rw-r--r--report/lab13/lab13.pdfbin0 -> 501731 bytes
-rw-r--r--report/lab13/lab13.tex75
-rwxr-xr-xreport/lab13/maker.sh35
4 files changed, 110 insertions, 0 deletions
diff --git a/report/lab13/images/test13.png b/report/lab13/images/test13.png
new file mode 100644
index 0000000..97c5351
--- /dev/null
+++ b/report/lab13/images/test13.png
Binary files differ
diff --git a/report/lab13/lab13.pdf b/report/lab13/lab13.pdf
new file mode 100644
index 0000000..db6cbfa
--- /dev/null
+++ b/report/lab13/lab13.pdf
Binary files 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 <main-doc>.tex -> Запуск процесса, пересобирающего документ при изменениях"
+ echo "./maker.sh doc <main-doc>.tex -> Пересобрать документ"
+ echo "./maker.sh clean -> Удаление сгенерированных файлов"
+ exit 1
+}
+
+case "$1" in
+ watch) watch $2 ;;
+ doc) doc $2 ;;
+ clean) clean ;;
+ *) help ;;
+esac