<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="https://vscripts.ru/w/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>https://vscripts.ru/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Isaeva</id>
		<title>Модулярная арифметика - Вклад участника [ru]</title>
		<link rel="self" type="application/atom+xml" href="https://vscripts.ru/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Isaeva"/>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%92%D0%BA%D0%BB%D0%B0%D0%B4/Isaeva"/>
		<updated>2026-04-09T21:13:43Z</updated>
		<subtitle>Вклад участника</subtitle>
		<generator>MediaWiki 1.23.17</generator>

	<entry>
		<id>https://vscripts.ru/w/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BC%D1%83%D0%BB%D1%8C%D1%82%D0%B8%D0%BF%D0%BB%D0%B8%D0%BA%D0%B0%D1%82%D0%B8%D0%B2%D0%BD%D1%8B%D1%85_%D0%BE%D0%B1%D1%80%D0%B0%D1%82%D0%BD%D1%8B%D1%85_%D1%8D%D0%BB%D0%B5%D0%BC%D0%B5%D0%BD%D1%82%D0%BE%D0%B2_%D0%BF%D0%BE_%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%BD%D0%BE%D0%BC%D1%83_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8E</id>
		<title>Вычисление мультипликативных обратных элементов по заданному модулю</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BC%D1%83%D0%BB%D1%8C%D1%82%D0%B8%D0%BF%D0%BB%D0%B8%D0%BA%D0%B0%D1%82%D0%B8%D0%B2%D0%BD%D1%8B%D1%85_%D0%BE%D0%B1%D1%80%D0%B0%D1%82%D0%BD%D1%8B%D1%85_%D1%8D%D0%BB%D0%B5%D0%BC%D0%B5%D0%BD%D1%82%D0%BE%D0%B2_%D0%BF%D0%BE_%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%BD%D0%BE%D0%BC%D1%83_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8E"/>
				<updated>2015-06-24T15:00:17Z</updated>
		
		<summary type="html">&lt;p&gt;Isaeva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Рассмотрим вопрос о мультипликативных обратных элементов по заданному модулю в фактор-кольце &amp;lt;math&amp;gt;Z_p&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Теорема'''&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;\bar a \in Z_p&amp;lt;/math&amp;gt;, тогда класс &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; имеет мультипликативный обратный элемент по модулю &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; тогда и только тогда, когда &amp;lt;math&amp;gt;(a, p) = 1&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Теорема'''&lt;br /&gt;
&lt;br /&gt;
Характеристика &amp;lt;math&amp;gt;\lambda&amp;lt;/math&amp;gt; конечного поля – простое число.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Рассмотрим два способа вычисления обратных мультипликативных элементов. Первый способ основан на рассмотренном выше алгоритме Евклида, второй – на теореме Эйлера.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Первый способ''&lt;br /&gt;
&lt;br /&gt;
Из условия &amp;lt;math&amp;gt;(a, p) = 1&amp;lt;/math&amp;gt; получаем &amp;lt;math&amp;gt;a \cdot x + p \cdot y = 1&amp;lt;/math&amp;gt; или &amp;lt;math&amp;gt;a \cdot x \equiv 1 \pmod{p}&amp;lt;/math&amp;gt; и, следовательно, &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; – мультипликативный обратный к &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; по модулю &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Второй способ''&lt;br /&gt;
&lt;br /&gt;
Напомним теорему Эйлера.&lt;br /&gt;
&lt;br /&gt;
'''Определение'''&lt;br /&gt;
&lt;br /&gt;
Функция Эйлера &amp;lt;math&amp;gt;\varphi (n)&amp;lt;/math&amp;gt; — это количество чисел от &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; до &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt;, взаимно простых с &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Т.е. это количество таких натуральных чисел из отрезка &amp;lt;math&amp;gt;[1; n]&amp;lt;/math&amp;gt;, наибольший общий делитель (НОД) которых с &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; равен единице.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Tеоремa Эйлера'''&lt;br /&gt;
&lt;br /&gt;
Если &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; взаимно просты, то &amp;lt;math&amp;gt;a^{\varphi(p)} \equiv 1 \pmod p&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;\varphi (n)&amp;lt;/math&amp;gt; - функция Эйлера.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Доказательство теоремы достаточно простое, возможны различные варианты. Приведем здесь теоретико-числовое доказательство.&lt;br /&gt;
&lt;br /&gt;
''Доказательство''&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;x_1, \dots, x_{\varphi(p)}&amp;lt;/math&amp;gt; — все различные натуральные числа, меньшие &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; и взаимно простые с ним.&lt;br /&gt;
&lt;br /&gt;
Рассмотрим все возможные произведения &amp;lt;math&amp;gt;x_i a&amp;lt;/math&amp;gt; для всех &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt; от &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; до &amp;lt;math&amp;gt;\varphi(p)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Поскольку &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; взаимно просто с &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt; взаимно просто с &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;, то и &amp;lt;math&amp;gt;x_i a&amp;lt;/math&amp;gt; также взаимно просто с &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;, то есть &amp;lt;math&amp;gt;x_i a \equiv x_j\pmod p&amp;lt;/math&amp;gt; для некоторого &amp;lt;math&amp;gt;j&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Отметим, что все остатки &amp;lt;math&amp;gt;x_i a&amp;lt;/math&amp;gt; при делении на &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; различны. Действительно, пусть это не так, то существуют такие &amp;lt;math&amp;gt;i_1 \neq i_2&amp;lt;/math&amp;gt;, что&lt;br /&gt;
: &amp;lt;math&amp;gt;x_{i_1} a \equiv x_{i_2} a\pmod p&amp;lt;/math&amp;gt;&lt;br /&gt;
или&lt;br /&gt;
: &amp;lt;math&amp;gt;(x_{i_1} - x_{i_2}) a \equiv 0\pmod p&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Так как &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; взаимно просто с &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;, то последнее равенство равносильно тому, что&lt;br /&gt;
: &amp;lt;math&amp;gt;x_{i_1} - x_{i_2} \equiv 0\pmod p&amp;lt;/math&amp;gt; или &amp;lt;math&amp;gt;x_{i_1} \equiv x_{i_2}\pmod p&amp;lt;/math&amp;gt;.&lt;br /&gt;
Это противоречит тому, что числа &amp;lt;math&amp;gt;x_1, \dots, x_{\varphi(p)}&amp;lt;/math&amp;gt; попарно различны по модулю &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Перемножим все сравнения вида &amp;lt;math&amp;gt;x_i a \equiv x_j\pmod p&amp;lt;/math&amp;gt;. Получим:&lt;br /&gt;
: &amp;lt;math&amp;gt;x_1 \cdots x_{\varphi(p)} a^{\varphi(p)} \equiv x_1 \cdots x_{\varphi(p)}\pmod p&amp;lt;/math&amp;gt;&lt;br /&gt;
или&lt;br /&gt;
: &amp;lt;math&amp;gt;x_1 \cdots x_{\varphi(p)} (a^{\varphi(p)}-1) \equiv 0\pmod p&amp;lt;/math&amp;gt;.&lt;br /&gt;
Так как число &amp;lt;math&amp;gt;x_1 \cdots x_{\varphi(p)}&amp;lt;/math&amp;gt; взаимно просто с &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;, то последнее сравнение равносильно тому, что&lt;br /&gt;
: &amp;lt;math&amp;gt;a^{\varphi(p)}-1 \equiv 0\pmod p&amp;lt;/math&amp;gt; &lt;br /&gt;
или &lt;br /&gt;
:&amp;lt;math&amp;gt;a^{\varphi(p)} \equiv 1\pmod p&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В частном случае, когда &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; простое, теорема Эйлера превращается в так называемую малую теорему Ферма:&lt;br /&gt;
&lt;br /&gt;
'''Малая теорема Ферма'''&lt;br /&gt;
&lt;br /&gt;
Если &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; - простое число и &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; - произвольное целое число, не делящееся на &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;, то &amp;lt;math&amp;gt;a^{p-1} \equiv 1 \pmod p &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Следствие'''&lt;br /&gt;
&lt;br /&gt;
В кольце &amp;lt;math&amp;gt;Z_p&amp;lt;/math&amp;gt; классов вычетов по модулю &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; из &amp;lt;math&amp;gt;(\bar a, p) = 1&amp;lt;/math&amp;gt; следует, что &amp;lt;math&amp;gt;a^{-1} = a^{-{\varphi}(p)-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Таким образом, для вычисления мультипликативного обратного к классу &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; по модулю &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; в случае, когда &amp;lt;math&amp;gt;(\bar a, p) = 1&amp;lt;/math&amp;gt;, достаточно &amp;lt;math&amp;gt;\bar a&amp;lt;/math&amp;gt; возвести в степень &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;k = p-2&amp;lt;/math&amp;gt;, если &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; – простое число, и &amp;lt;math&amp;gt;k = {{\varphi}(p)-1}&amp;lt;/math&amp;gt; в противном случае.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
При таком методе вычисления мультипликативного обратного элемента задача сводится к цепочке умножений и делений с остатком на модуль &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;. Эта задача решается без особых трудностей, если наименьший положительный вычет &amp;lt;math&amp;gt;a \in \bar a&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;(\bar a, p) = 1&amp;lt;/math&amp;gt;, представлен в СОК.&lt;br /&gt;
&lt;br /&gt;
Однако, вообще говоря, &amp;lt;math&amp;gt;{{\varphi}(p)-1}&amp;lt;/math&amp;gt; не является наименьшим показателем степени, для которого &amp;lt;math&amp;gt;(\bar a)^{-1} = (\bar a)^{{\varphi}(p)-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
''Разложение кольца вычетов''&lt;br /&gt;
&lt;br /&gt;
Из китайской теоремы об остатках следует &lt;br /&gt;
&lt;br /&gt;
''Утверждение''&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;p = n_{1}^{l_1} \cdot n_{2}^{l_2} \cdot \ldots \cdot n_{k}^{l_k}&amp;lt;/math&amp;gt; - каноническое представление числа &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;. Тогда функция, которая каждому классу &amp;lt;math&amp;gt;\bar x \in Z_m&amp;lt;/math&amp;gt; ставит в соответствие кортеж &amp;lt;math&amp;gt;(x_1, x_2, \ldots, x_k)&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt; x \equiv x_i \pmod {p_{i}^{l_i}}, i=1, \ldots, k&amp;lt;/math&amp;gt;, является кольцевым изоморфизмом кольца &amp;lt;math&amp;gt;Z_p&amp;lt;/math&amp;gt; класса вычетов по модулю &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; и кольца кортежей вида &amp;lt;math&amp;gt;(x_1, x_2, \ldots, x_k)&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;\bar x \in Z_{p_i^k}, i=1, \ldots, k&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Более того, если обозначить через &amp;lt;math&amp;gt;*&amp;lt;/math&amp;gt; любую из кольцевых операций &amp;lt;math&amp;gt;+&amp;lt;/math&amp;gt; или &amp;lt;math&amp;gt;\cdot&amp;lt;/math&amp;gt; , то &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;(x_1, x_2, \ldots, x_k)*(y_1, y_2, \ldots, y_k) = (x_1 * y_1, x_2 * y_2, \ldots, x_k * y_k)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Таким образом,&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;Z_p \cong Z_{n_1}^{l_1} \times Z_{n_2}^{l_2} \times \ldots \times Z_{n_k}^{l_k}&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
т.е. кольцо классов вычетов по модулю &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; раскладывается в прямое произведение колец классов вычетов по модулям &amp;lt;math&amp;gt;n_{1}^{l_1}, n_{2}^{l_2}, \ldots, n_{k}^{l_k}&amp;lt;/math&amp;gt;. Это разложение колец индуцирует разложение групп их обратимых элементов:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;U_p \cong U_{n_1}^{l_1} \times U_{n_2}^{l_2} \times \ldots \times U_{n_k}^{l_k}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Можно сделать вывод о том, что произвольное целое положительное число &amp;lt;math&amp;gt;A, 0 &amp;lt; A &amp;lt; P&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;p = p_1 \cdot p_2 \cdot \ldots \cdot p_k&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;(p_i,p_j) = 1&amp;lt;/math&amp;gt; для &amp;lt;math&amp;gt;i \not = j&amp;lt;/math&amp;gt;, однозначно представимо своими наименьшими неотрицательными остатками по модулям &amp;lt;math&amp;gt;p_i&amp;lt;/math&amp;gt;, причём сложение (а, следовательно, и вычитание) и умножение выполняются покомпонентно.&lt;/div&gt;</summary>
		<author><name>Isaeva</name></author>	</entry>

	<entry>
		<id>https://vscripts.ru/w/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BC%D1%83%D0%BB%D1%8C%D1%82%D0%B8%D0%BF%D0%BB%D0%B8%D0%BA%D0%B0%D1%82%D0%B8%D0%B2%D0%BD%D1%8B%D1%85_%D0%BE%D0%B1%D1%80%D0%B0%D1%82%D0%BD%D1%8B%D1%85_%D1%8D%D0%BB%D0%B5%D0%BC%D0%B5%D0%BD%D1%82%D0%BE%D0%B2_%D0%BF%D0%BE_%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%BD%D0%BE%D0%BC%D1%83_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8E</id>
		<title>Вычисление мультипликативных обратных элементов по заданному модулю</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BC%D1%83%D0%BB%D1%8C%D1%82%D0%B8%D0%BF%D0%BB%D0%B8%D0%BA%D0%B0%D1%82%D0%B8%D0%B2%D0%BD%D1%8B%D1%85_%D0%BE%D0%B1%D1%80%D0%B0%D1%82%D0%BD%D1%8B%D1%85_%D1%8D%D0%BB%D0%B5%D0%BC%D0%B5%D0%BD%D1%82%D0%BE%D0%B2_%D0%BF%D0%BE_%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%BD%D0%BE%D0%BC%D1%83_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8E"/>
				<updated>2015-06-24T14:43:17Z</updated>
		
		<summary type="html">&lt;p&gt;Isaeva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Рассмотрим вопрос о мультипликативных обратных элементов по заданному модулю в фактор-кольце &amp;lt;math&amp;gt;Z_p&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Теорема'''&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;\bar a \in Z_p&amp;lt;/math&amp;gt;, тогда класс &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; имеет мультипликативный обратный элемент по модулю &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; тогда и только тогда, когда &amp;lt;math&amp;gt;(a, p) = 1&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Теорема'''&lt;br /&gt;
&lt;br /&gt;
Характеристика &amp;lt;math&amp;gt;\lambda&amp;lt;/math&amp;gt; конечного поля – простое число.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Рассмотрим два способа вычисления обратных мультипликативных элементов. Первый способ основан на рассмотренном выше алгоритме Евклида, второй – на теореме Эйлера.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Первый способ''&lt;br /&gt;
&lt;br /&gt;
Из условия &amp;lt;math&amp;gt;(a, p) = 1&amp;lt;/math&amp;gt; получаем &amp;lt;math&amp;gt;a \cdot x + p \cdot y = 1&amp;lt;/math&amp;gt; или &amp;lt;math&amp;gt;a \cdot x \equiv 1 \pmod{p}&amp;lt;/math&amp;gt; и, следовательно, &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; – мультипликативный обратный к &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; по модулю &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Второй способ''&lt;br /&gt;
&lt;br /&gt;
Напомним теорему Эйлера.&lt;br /&gt;
&lt;br /&gt;
'''Определение'''&lt;br /&gt;
&lt;br /&gt;
Функция Эйлера &amp;lt;math&amp;gt;\varphi (n)&amp;lt;/math&amp;gt; — это количество чисел от &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; до &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt;, взаимно простых с &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Т.е. это количество таких натуральных чисел из отрезка [1; n], наибольший общий делитель (НОД) которых с &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; равен единице.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Tеоремa Эйлера'''&lt;br /&gt;
&lt;br /&gt;
Если &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; взаимно просты, то &amp;lt;math&amp;gt;a^{\varphi(p)} \equiv 1 \pmod p&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;\varphi (n)&amp;lt;/math&amp;gt; - функция Эйлера.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Доказательство теоремы достаточно простое, возможны различные варианты. Приведем здесь теоретико-числовое доказательство.&lt;br /&gt;
&lt;br /&gt;
''Доказательство''&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;x_1, \dots, x_{\varphi(p)}&amp;lt;/math&amp;gt; — все различные натуральные числа, меньшие &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; и взаимно простые с ним.&lt;br /&gt;
&lt;br /&gt;
Рассмотрим все возможные произведения &amp;lt;math&amp;gt;x_i a&amp;lt;/math&amp;gt; для всех &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt; от &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; до &amp;lt;math&amp;gt;\varphi(p)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Поскольку &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; взаимно просто с &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt; взаимно просто с &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;, то и &amp;lt;math&amp;gt;x_i a&amp;lt;/math&amp;gt; также взаимно просто с &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;, то есть &amp;lt;math&amp;gt;x_i a \equiv x_j\pmod p&amp;lt;/math&amp;gt; для некоторого &amp;lt;math&amp;gt;j&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Отметим, что все остатки &amp;lt;math&amp;gt;x_i a&amp;lt;/math&amp;gt; при делении на &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; различны. Действительно, пусть это не так, то существуют такие &amp;lt;math&amp;gt;i_1 \neq i_2&amp;lt;/math&amp;gt;, что&lt;br /&gt;
: &amp;lt;math&amp;gt;x_{i_1} a \equiv x_{i_2} a\pmod p&amp;lt;/math&amp;gt;&lt;br /&gt;
или&lt;br /&gt;
: &amp;lt;math&amp;gt;(x_{i_1} - x_{i_2}) a \equiv 0\pmod p&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Так как &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; взаимно просто с &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;, то последнее равенство равносильно тому, что&lt;br /&gt;
: &amp;lt;math&amp;gt;x_{i_1} - x_{i_2} \equiv 0\pmod p&amp;lt;/math&amp;gt; или &amp;lt;math&amp;gt;x_{i_1} \equiv x_{i_2}\pmod p&amp;lt;/math&amp;gt;.&lt;br /&gt;
Это противоречит тому, что числа &amp;lt;math&amp;gt;x_1, \dots, x_{\varphi(p)}&amp;lt;/math&amp;gt; попарно различны по модулю &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Перемножим все сравнения вида &amp;lt;math&amp;gt;x_i a \equiv x_j\pmod p&amp;lt;/math&amp;gt;. Получим:&lt;br /&gt;
: &amp;lt;math&amp;gt;x_1 \cdots x_{\varphi(p)} a^{\varphi(p)} \equiv x_1 \cdots x_{\varphi(p)}\pmod p&amp;lt;/math&amp;gt;&lt;br /&gt;
или&lt;br /&gt;
: &amp;lt;math&amp;gt;x_1 \cdots x_{\varphi(p)} (a^{\varphi(p)}-1) \equiv 0\pmod p&amp;lt;/math&amp;gt;.&lt;br /&gt;
Так как число &amp;lt;math&amp;gt;x_1 \cdots x_{\varphi(p)}&amp;lt;/math&amp;gt; взаимно просто с &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;, то последнее сравнение равносильно тому, что&lt;br /&gt;
: &amp;lt;math&amp;gt;a^{\varphi(p)}-1 \equiv 0\pmod p&amp;lt;/math&amp;gt; &lt;br /&gt;
или &lt;br /&gt;
:&amp;lt;math&amp;gt;a^{\varphi(p)} \equiv 1\pmod p&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В частном случае, когда &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; простое, теорема Эйлера превращается в так называемую малую теорему Ферма:&lt;br /&gt;
&lt;br /&gt;
'''Малая теорема Ферма'''&lt;br /&gt;
&lt;br /&gt;
Если &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; - простое число и &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; - произвольное целое число, не делящееся на &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;, то &amp;lt;math&amp;gt;a^{p-1} \equiv 1 \pmod p &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Следствие'''&lt;br /&gt;
&lt;br /&gt;
В кольце &amp;lt;math&amp;gt;Z_p&amp;lt;/math&amp;gt; классов вычетов по модулю &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; из &amp;lt;math&amp;gt;(\bar a, p) = 1&amp;lt;/math&amp;gt; следует, что &amp;lt;math&amp;gt;a^{-1} = a^{-{\varphi}(p)-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Таким образом, для вычисления мультипликативного обратного к классу &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; по модулю &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; в случае, когда &amp;lt;math&amp;gt;(\bar a, p) = 1&amp;lt;/math&amp;gt;, достаточно &amp;lt;math&amp;gt;\bar a&amp;lt;/math&amp;gt; возвести в степень &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;k = p-2&amp;lt;/math&amp;gt;, если &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; – простое число, и &amp;lt;math&amp;gt;k = {{\varphi}(p)-1}&amp;lt;/math&amp;gt; в противном случае.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
При таком методе вычисления мультипликативного обратного элемента задача сводится к цепочке умножений и делений с остатком на модуль &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;. Эта задача решается без особых трудностей, если наименьший положительный вычет &amp;lt;math&amp;gt;a \in \bar a&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;(\bar a, p) = 1&amp;lt;/math&amp;gt;, представлен в СОК.&lt;br /&gt;
&lt;br /&gt;
Однако, вообще говоря, &amp;lt;math&amp;gt;{{\varphi}(p)-1}&amp;lt;/math&amp;gt; не является наименьшим показателем степени, для которого &amp;lt;math&amp;gt;(\bar a)^{-1} = (\bar a)^{{\varphi}(p)-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
''Разложение кольца вычетов''&lt;br /&gt;
&lt;br /&gt;
Из китайской теоремы об остатках следует &lt;br /&gt;
&lt;br /&gt;
''Утверждение''&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;p = n_{1}^{l_1} \cdot n_{2}^{l_2} \cdot \ldots \cdot n_{k}^{l_k}&amp;lt;/math&amp;gt; - каноническое представление числа &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;. Тогда функция, которая каждому классу &amp;lt;math&amp;gt;\bar x \in Z_m&amp;lt;/math&amp;gt; ставит в соответствие кортеж &amp;lt;math&amp;gt;(x_1, x_2, \ldots, x_k)&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt; x \equiv x_i \pmod {p_{i}^{l_i}}, i=1, \ldots, k&amp;lt;/math&amp;gt;, является кольцевым изоморфизмом кольца &amp;lt;math&amp;gt;Z_p&amp;lt;/math&amp;gt; класса вычетов по модулю &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; и кольца кортежей вида &amp;lt;math&amp;gt;(x_1, x_2, \ldots, x_k)&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;\bar x \in Z_{p_i^k}, i=1, \ldots, k&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Более того, если обозначить через &amp;lt;math&amp;gt;*&amp;lt;/math&amp;gt; любую из кольцевых операций &amp;lt;math&amp;gt;+&amp;lt;/math&amp;gt; или &amp;lt;math&amp;gt;\cdot&amp;lt;/math&amp;gt; , то &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;(x_1, x_2, \ldots, x_k)*(y_1, y_2, \ldots, y_k) = (x_1 * y_1, x_2 * y_2, \ldots, x_k * y_k)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Таким образом,&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;Z_p \cong Z_{n_1}^{l_1} \times Z_{n_2}^{l_2} \times \ldots \times Z_{n_k}^{l_k}&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
т.е. кольцо классов вычетов по модулю &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; раскладывается в прямое произведение колец классов вычетов по модулям &amp;lt;math&amp;gt;n_{1}^{l_1}, n_{2}^{l_2}, \ldots, n_{k}^{l_k}&amp;lt;/math&amp;gt;. Это разложение колец индуцирует разложение групп их обратимых элементов:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;U_p \cong U_{n_1}^{l_1} \times U_{n_2}^{l_2} \times \ldots \times U_{n_k}^{l_k}&amp;lt;/math&amp;gt;.&lt;/div&gt;</summary>
		<author><name>Isaeva</name></author>	</entry>

	<entry>
		<id>https://vscripts.ru/w/%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BE%D1%81%D1%82%D0%B0%D1%82%D0%BE%D1%87%D0%BD%D1%8B%D1%85_%D0%BA%D0%BB%D0%B0%D1%81%D1%81%D0%BE%D0%B2_-_%D0%B2%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5</id>
		<title>Система остаточных классов - введение</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BE%D1%81%D1%82%D0%B0%D1%82%D0%BE%D1%87%D0%BD%D1%8B%D1%85_%D0%BA%D0%BB%D0%B0%D1%81%D1%81%D0%BE%D0%B2_-_%D0%B2%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5"/>
				<updated>2015-06-24T13:44:00Z</updated>
		
		<summary type="html">&lt;p&gt;Isaeva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Теоретико-числовая база построения системы остаточных классов =&lt;br /&gt;
&lt;br /&gt;
Напомним определение деления с остатком.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Определение''' &lt;br /&gt;
&lt;br /&gt;
Говорят, что целое число &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; делится на натуральное число &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; с остатком, если имеется пара целых чисел &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;, таких, что &amp;lt;math&amp;gt;n = m \cdot q+r&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;0\le r&amp;lt;m&amp;lt;/math&amp;gt;. &lt;br /&gt;
&amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; называется делимым, &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; - делителем, &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; - неполным частным, &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt; - остатком.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Для целых чисел:&lt;br /&gt;
&lt;br /&gt;
'''Определение''' &lt;br /&gt;
&lt;br /&gt;
Говорят, что целое число &amp;lt;math&amp;gt;n \in Z&amp;lt;/math&amp;gt; делится на целое число &amp;lt;math&amp;gt;m \in Z&amp;lt;/math&amp;gt; с остатком, если имеется пара целых чисел &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;, таких, что &amp;lt;math&amp;gt;n = m \cdot q+r&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;0\le r&amp;lt;|m|&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Пример''': &lt;br /&gt;
&lt;br /&gt;
'''48''' при делении на '''5''' даёт остаток '''3''', т.к. &amp;lt;math&amp;gt;48=5\cdot 9+3&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;0\le 3&amp;lt;5&amp;lt;/math&amp;gt;, '''-48''' при делении на '''5''' даёт остаток '''2''', т.к. &amp;lt;math&amp;gt;-48=5\cdot (-10)+2&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;0\le 2&amp;lt;5&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Сравнения и их основные свойства ==&lt;br /&gt;
&lt;br /&gt;
Возьмём произвольное фиксированное натуральное число &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; и будем рассматривать остатки при делении на &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; различных целых чисел.&lt;br /&gt;
&lt;br /&gt;
При рассмотрении свойств этих остатков и проведении операций над ними удобно ввести понятие сравнения по модулю.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Определение''' &lt;br /&gt;
&lt;br /&gt;
Два целых числа &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt; b &amp;lt;/math&amp;gt; называются '''сравнимыми по модулю &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt;''', если их разность &amp;lt;math&amp;gt; a-b &amp;lt;/math&amp;gt; делится без остатка на &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Символически сравнимость записывается в виде формулы ('''сравнения'''):&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;a \equiv b \pmod{m}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Число &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; называется '''модулем''' сравнения.&lt;br /&gt;
&lt;br /&gt;
Эквивалентная формулировка:&lt;br /&gt;
&lt;br /&gt;
'''Определение''' &lt;br /&gt;
&lt;br /&gt;
Целые числа &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt; b &amp;lt;/math&amp;gt; называются '''сравнимыми по модулю &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt;''', если остатки от деления этих чисел на &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; равны.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Отношение сравнимости по модулю &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; обладает свойствами рефлексивности, симметричности и транзитивности, т.е. является отношением эквивалентности.&lt;br /&gt;
&lt;br /&gt;
Отнесём все целые числа, дающие при делении на &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; один и тот же остаток в один класс, поэтому получится &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; различных классов по модулю &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt;.&lt;br /&gt;
Множество всех чисел сравнимых с &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; по модулю &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; называется классом вычетов &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; по модулю &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Подробнее о свойствах сравнений и классах вычетов смотри [[Сравнения и их основные свойства| Сравнения и их основные свойства]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Теорема о делении с остатком. Алгоритм Евклида ==&lt;br /&gt;
&lt;br /&gt;
'''Теорема о делении с остатком'''&lt;br /&gt;
&lt;br /&gt;
Для любых целых &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;b \not= 0&amp;lt;/math&amp;gt;, существует единственный набор целых чисел &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;, что &amp;lt;math&amp;gt;a = bq + r&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;0 \le r &amp;lt; |b|&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;|b|&amp;lt;/math&amp;gt; — модуль числа &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
На этой операции основан алгоритм Евклида нахождения наибольшего общего делителя двух целых чисел.&lt;br /&gt;
&lt;br /&gt;
'''Алгоритм Евклида для целых чисел'''&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; — целые числа, не равные одновременно нулю, и последовательность чисел&lt;br /&gt;
: &amp;lt;math&amp;gt; a &amp;gt; b &amp;gt; r_1 &amp;gt; r_2 &amp;gt; r_3 &amp;gt; r_4 &amp;gt; \cdots &amp;gt;r_n&amp;lt;/math&amp;gt;&lt;br /&gt;
определена тем, что каждое &amp;lt;math&amp;gt;r_k&amp;lt;/math&amp;gt; — это остаток от деления предпредыдущего числа на предыдущее, а предпоследнее делится на последнее нацело, то есть&lt;br /&gt;
: &amp;lt;math&amp;gt;a = bq_0 + r_1&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;b = r_1q_1 + r_2&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;r_1 = r_2q_2 + r_3&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;\cdots&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;r_{k-2} = r_{k-1} q_{k-1} + r_k&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;\cdots&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;r_{n-2} = r_{n-1}q_{n-1}+ r_n&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;r_{n-1} = r_n q_n&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Тогда '''НОД''' &amp;lt;math&amp;gt;(a,b)&amp;lt;/math&amp;gt;, наибольший общий делитель &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt;, равен&lt;br /&gt;
&amp;lt;math&amp;gt;r_n&amp;lt;/math&amp;gt;, последнему ненулевому члену этой последовательности.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Существование''' таких &amp;lt;math&amp;gt;r_1, r_2, ...&amp;lt;/math&amp;gt;, то есть возможность деления с остатком &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; на &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; для любого целого &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и целого &amp;lt;math&amp;gt;b\ne 0&amp;lt;/math&amp;gt;, доказывается индукцией.&lt;br /&gt;
&lt;br /&gt;
'''Корректность''' этого алгоритма вытекает из следующих двух утверждений:&lt;br /&gt;
&lt;br /&gt;
* Пусть &amp;lt;math&amp;gt;a = bq + r&amp;lt;/math&amp;gt;, тогда '''НОД''' &amp;lt;math&amp;gt;(a,b)&amp;lt;/math&amp;gt; = '''НОД''' &amp;lt;math&amp;gt;(b,r)&amp;lt;/math&amp;gt;.&lt;br /&gt;
* '''НОД''' &amp;lt;math&amp;gt;(0,r)&amp;lt;/math&amp;gt; = &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt; для любого ненулевого &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt; (так как 0 делится на любое целое число, кроме нуля).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Смотри [[Теорема о делении с остатком. Алгоритм Евклида|Теорема о делении с остатком. Алгоритм Евклида]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Китайская теорема об остатках ==&lt;br /&gt;
&lt;br /&gt;
Фундаментальным положением, лежащим в основе модулярного представления чисел, является китайская теорема об остатках (Chinese Remainder Theorem - CRT). &lt;br /&gt;
Например, эта теорема гарантирует, что при правильном выборе модулей СОК  &lt;br /&gt;
каждое число из динамического диапазона имеет в СОК единственное представление, &lt;br /&gt;
и по этому представлению можно определить представленное число.&lt;br /&gt;
В своей первоначальной формулировке эта теорема была доказана китайским математиком Сунь-Цзы приблизительно в 100 г. н.э.&lt;br /&gt;
В современной формулировке теорема звучит так:&lt;br /&gt;
&lt;br /&gt;
'''Теорема'''&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;p_1, p_2, \ldots, p_k&amp;lt;/math&amp;gt; - попарно взаимно простые числа, большие 1, и пусть &amp;lt;math&amp;gt;p = p_1 \cdot p_2 \cdot \ldots  \cdot p_k&amp;lt;/math&amp;gt;. Тогда существует единственное неотрицательное решение по модулю &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; следующей системы сравнений:&lt;br /&gt;
: &amp;lt;math&amp;gt;x \equiv a_1 \pmod{p_1}&amp;lt;/math&amp;gt;,&lt;br /&gt;
: &amp;lt;math&amp;gt;x \equiv a_2 \pmod{p_2}&amp;lt;/math&amp;gt;,&lt;br /&gt;
: &amp;lt;math&amp;gt;\ldots&amp;lt;/math&amp;gt;,&lt;br /&gt;
: &amp;lt;math&amp;gt;x \equiv a_k \pmod{p_k}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Другими словами, отображение, которое каждому целому числу &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;0\le x &amp;lt;p&amp;lt;/math&amp;gt;, ставит в соответствие кортеж &amp;lt;math&amp;gt;a_1, a_2,\ldots, a_k&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;x \equiv a_i \pmod{p_i}, i = 1, \ldots k&amp;lt;/math&amp;gt; является биекцией кольца &amp;lt;math&amp;gt;Z_P&amp;lt;/math&amp;gt; на декартово произведение &amp;lt;math&amp;gt;Z_{p_1} \times Z_{p_2} \times \ldots \times Z_{p_k}&amp;lt;/math&amp;gt;  колец &amp;lt;math&amp;gt;Z_{p_1}, Z_{p_2}, \ldots, Z_{p_k}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Подробности и доказательство теоремы смотри [[Китайская теорема об остатках| Китайская теорема об остатках]].&lt;br /&gt;
&lt;br /&gt;
Смотри также [[Описание КТО II|Китайская теорема об остатках(КТО II)]], [[Описание КТО III|Китайская теорема об остатках (КТО III)]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Теоремы Эйлера и Ферма, их роль в вычислении мультипликативных обратных элементов по заданному модулю ==&lt;br /&gt;
&lt;br /&gt;
'''Определение'''&lt;br /&gt;
&lt;br /&gt;
Функция Эйлера &amp;lt;math&amp;gt;\varphi(n)&amp;lt;/math&amp;gt; — это количество чисел от &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; до &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt;, взаимно простых с &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Т.е. это количество таких натуральных чисел из отрезка &amp;lt;math&amp;gt;[1; n]&amp;lt;/math&amp;gt;, наибольший общий делитель (НОД) которых с &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; равен единице.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Tеоремa Эйлера'''&lt;br /&gt;
&lt;br /&gt;
Если &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; взаимно просты, то &amp;lt;math&amp;gt;a^{\varphi(p)} \equiv 1 \pmod p&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;\varphi(n)&amp;lt;/math&amp;gt; - функция Эйлера.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Частным случаем теоремы Эйлера является малая теорема Ферма.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Малая теорема Ферма'''&lt;br /&gt;
&lt;br /&gt;
Если &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; - простое число и &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; - произвольное целое число, не делящееся на &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;, то &amp;lt;math&amp;gt;a^{p-1} \equiv 1 \pmod p &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Смотри [[Функция Эйлера|Функция Эйлера]], [[Вычисление мультипликативных обратных элементов по заданному модулю|Вычисление мультипликативных обратных элементов по заданному модулю]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Числа Мерсенна, Ферма и операции над ними ==&lt;br /&gt;
&lt;br /&gt;
При рассмотрении отдельных классов простых чисел интерес представляет вопрос о простых числах специального вида, например, таких как числа Мерсенна или числа Ферма.&lt;br /&gt;
&lt;br /&gt;
'''Определение'''&lt;br /&gt;
&lt;br /&gt;
'''Числа Мерсенна''' — числа вида &amp;lt;math&amp;gt;M_n = 2^n - 1&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; — натуральное число.&lt;br /&gt;
Названы в честь французского математика Марена Мерсенна.&lt;br /&gt;
&lt;br /&gt;
Иногда числами Мерсенна называют только числа &amp;lt;math&amp;gt;M_n&amp;lt;/math&amp;gt; с нечетными или простыми индексами ''n''. &lt;br /&gt;
&lt;br /&gt;
Множества простых чисел в этих последовательностях совпадают, а потому понятие ''простого числа Мерсенна'' не зависит от того, как именно определяются числа Мерсенна.&lt;br /&gt;
&lt;br /&gt;
При простых значениях n = p число   может оказаться простым, но может быть составным.&lt;br /&gt;
Например, при &amp;lt;math&amp;gt;p = 2, 3, 5, 7, 13, 17, 19&amp;lt;/math&amp;gt; мы получаем простые числа Мерсенна: &amp;lt;math&amp;gt;3, 7, 31, 127, 8191, 131071&amp;lt;/math&amp;gt;, а при &amp;lt;math&amp;gt;p = 11, 23, 29&amp;lt;/math&amp;gt; числа &amp;lt;math&amp;gt;2^p - 1&amp;lt;/math&amp;gt; - составные. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Определение'''&lt;br /&gt;
&lt;br /&gt;
'''Числа Ферма''' — числа вида &amp;lt;math&amp;gt;F_n=2^{2^n}+1&amp;lt;/math&amp;gt;, где ''n'' — неотрицательное целое число. &lt;br /&gt;
&lt;br /&gt;
При &amp;lt;math&amp;gt;n = 0, 1, 2, 3, 4&amp;lt;/math&amp;gt; числа Ферма простые: &amp;lt;math&amp;gt;3, 5, 17, 257, 65537&amp;lt;/math&amp;gt;. Известно, что для &amp;lt;math&amp;gt;5\le n \le 32&amp;lt;/math&amp;gt; числа &amp;lt;math&amp;gt;F_n&amp;lt;/math&amp;gt; являются составными. На 2014 г. не найдено ни одного простого числа такого вида для &amp;lt;math&amp;gt;n&amp;gt;4&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Все числа Мерсенна и Ферма – взаимно простые. Кроме того, для модулей СОК вида &amp;lt;math&amp;gt;M_n = 2^n - 1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;M_n = 2^n + 1&amp;lt;/math&amp;gt; легко реализуется преобразование и арифметические операции. Поэтому эффективно выбирать модули СОК в виде чисел Мерсенна и Ферма. &lt;br /&gt;
&lt;br /&gt;
Смотри [[Числа Мерсенна и Ферма|Числа Мерсенна и Ферма]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Математические модели модулярного представления и параллельной обработки информации =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Определение системы остаточных классов==&lt;br /&gt;
&lt;br /&gt;
Представление чисел в виде набора остатков от деления на выбранные натуральные модули - основания системы называется системой остаточных классов - СОК (residue number system - RNS) или модулярной системой счисления - МСС (modular system).&lt;br /&gt;
&lt;br /&gt;
Смотри [[Система остаточных классов|Система остаточных классов]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Выбор СОК как системы счисления ==&lt;br /&gt;
&lt;br /&gt;
Под системой счисления понимают совокупность символический метод записи чисел, представление чисел с помощью письменных знаков, или, точнее, способ кодирования (представления) элементов некоторой конечной модели действительных чисел словами одного или более алфавитов. &lt;br /&gt;
&lt;br /&gt;
К любой кодовой системе применимы следующие требования:&lt;br /&gt;
&lt;br /&gt;
* возможность представления в данной системе любой величины в рассматриваемом, заранее назначенном диапазоне;&lt;br /&gt;
* единственность представления – любая кодовая комбинация соответствует одному и только одному числу в заданном диапазоне;&lt;br /&gt;
* простота оперирования числами в данной системе счисления.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Системы счисления подразделяются на позиционные, непозиционные и смешанные. ([https://ru.wikipedia.org/wiki/%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D1%81%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F#.D0.9D.D0.B5.D0.BF.D0.BE.D0.B7.D0.B8.D1.86.D0.B8.D0.BE.D0.BD.D0.BD.D1.8B.D0.B5_.D1.81.D0.B8.D1.81.D1.82.D0.B5.D0.BC.D1.8B_.D1.81.D1.87.D0.B8.D1.81.D0.BB.D0.B5.D0.BD.D0.B8.D1.8F Система счисления])&lt;br /&gt;
&lt;br /&gt;
В позиционных системах счисления один и тот же числовой знак (цифра) в записи числа имеет различные значения в зависимости от того места (разряда), где он расположен.  Обычно используется b-ричная система счисления, которая определяется целым числом b&amp;gt;1, называемым основанием системы счисления.  &lt;br /&gt;
&lt;br /&gt;
Смешанная система счисления является обобщением b-ричной системы счисления и также зачастую относится к позиционным системам счисления. Смотри [[Полиадический код|Полиадический код]].&lt;br /&gt;
&lt;br /&gt;
В непозиционных системах счисления величина, которую обозначает цифра, не зависит от её положения в числе. При этом система может накладывать ограничения на положение цифр.&lt;br /&gt;
&lt;br /&gt;
Всякая вычислительная структура тесно связана с системой счисления, в которой она работает. &lt;br /&gt;
&lt;br /&gt;
В обычной позиционной системе счисления (ПСС) значение разряда любого числа, кроме младшего, являющегося результатом двухместной арифметической операции, зависит не только от значения одноимённых операндов, но и от всех младших разрядов, т. е. ПСС обладает строго последовательной структурой. &lt;br /&gt;
Напротив, непозиционные коды с параллельной структурой позволяют реализовать распараллеливание операций на уровне выполнения элементарных арифметических действий. &lt;br /&gt;
&lt;br /&gt;
В качестве такой непозиционной системы удобна система остаточных классов (СОК). &lt;br /&gt;
&lt;br /&gt;
Базовые арифметические операции в СОК делятся на две группы: модульные и немодульные.&lt;br /&gt;
&lt;br /&gt;
* Модульные операции, которые могут быть выполнены параллельно и независимо над отдельными цифрами чисел: сложение, умножение, вычитание без знака.&lt;br /&gt;
&lt;br /&gt;
* Немодульные операции, которые требуют знания величины модулярных чисел в целом: сравнение, вычитание с получением отрицательного результата, контроль переполнения модулярного числа.&lt;br /&gt;
&lt;br /&gt;
Основным достоинством системы остаточных классов является сравнительная простота выполнения модульных операций, недостатком - большая трудоемкость немодульных операций.&lt;br /&gt;
&lt;br /&gt;
Смотри [[Представление числа в системе остаточных классов|Представление числа в системе остаточных классов]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Модульные операции над числами в системе остаточных классов ==&lt;br /&gt;
&lt;br /&gt;
Возможность применения СОК в вычислительных алгоритмах обусловлено наличием определённого изоморфизма между математическими операциями над целыми числами и соответствующими операциями над системой целых неотрицательных остатков по отдельным модулям. Сложение, умножение, возведение в целую положительную степень любых целых положительных чисел идентичны соответствующим операциям, выполняемым над системой остатков. &lt;br /&gt;
&lt;br /&gt;
Смотри [[Модульные операции|Модульные операции]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Основные методы и алгоритмы перехода от позиционного представления к остаткам ==&lt;br /&gt;
&lt;br /&gt;
Обычно исходные данные для вычислений представлены в каком-либо традиционном представлении, двоичном или десятичном. В таком же виде ожидаются результаты вычислений. Отсюда понятна необходимость перевода чисел из позиционного представления в представление СОК (прямое преобразование) и обратно (обратное преобразование). Одной из первых немодульных процедур является прямое преобразование позиционных кодов в код СОК.&lt;br /&gt;
&lt;br /&gt;
Перевод числа в систему остаточных классов можно осуществить непосредственно методом деления, с модулями СОК в качестве делителей. Однако из-за сложности операции деления техническая реализация такого метода неэффективна.&lt;br /&gt;
Поэтому рассматриваются другие методы.&lt;br /&gt;
Например, часто используется метод перевода числа из позиционной системы счисления в СОК, не содержащий операции деления, называемый методом непосредственного суммирования модульных значений разрядов позиционного числа.&lt;br /&gt;
&lt;br /&gt;
Смотри [[Алгоритмы перехода от позиционного представления к остаткам|Алгоритмы перехода от позиционного представления к остаткам]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Восстановление позиционного представления числа по его остаткам ==&lt;br /&gt;
&lt;br /&gt;
Система остаточных классов обладает одной особенностью, которую можно отнести к недостаткам этой системы: нельзя визуально определить величину числа, представленного в СОК, а следовательно затруднительно и выполнение таких операций, как сравнение чисел, определение знака числа. Один из путей решения этой проблемы состоит в преобразовании чисел из СОК в позиционную систему счисления. Оценим существующие способы перевода, как традиционные: метод ортогональных базисов; перевод числа в обобщенную позиционную систему (ОПС), так и недавно появившиеся интервальные методы перевода.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Метод ортогональных базисов'''&lt;br /&gt;
&lt;br /&gt;
Метод восстановления числа по его остаткам был найден еще в Китае две тысячи лет назад. Основой этого метода является теорема, названная [[Китайская теорема об остатках| Китайской теоремой об остатках (КТО)]].&lt;br /&gt;
&lt;br /&gt;
Эта теорема лежит в основе метода ортогональных базисов при переводе из системы остаточных классов в позиционную систему счисления.&lt;br /&gt;
&lt;br /&gt;
Смотри [[Метод ортогональных базисов|Метод ортогональных базисов]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Перевод числа из СОК в обобщенную позиционную систему (ОПС)'''&lt;br /&gt;
&lt;br /&gt;
Еще один метод определения величины числа связан с переводом числа из системы остаточных классов в ОПС. Для того, чтобы рассмотреть этот метод, выявим связь между представлением некоторого числа в этих двух системах. &lt;br /&gt;
&lt;br /&gt;
Пусть по-прежнему СОК задается основаниями &amp;lt;math&amp;gt;p_1, p_2, \ldots, p_n&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;A = ({\alpha}_1, {\alpha}_2, \ldots, {\alpha}_n)&amp;lt;/math&amp;gt; - число в этой системе. И пусть &amp;lt;math&amp;gt;p_1, p_2, \ldots, p_n&amp;lt;/math&amp;gt; являются также основаниями ОПС, тогда число &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt; можно представить в виде&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;A = a_n\cdot p_1\cdot p_2\cdot \ldots \cdot p_{n-1} + a_{n-1}\cdot p_1\cdot p_2\cdot \ldots \cdot p_{n-2} + \ldots + a_3\cdot p_1\cdot p_2 + a_2\cdot p_1 + a_1&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
где &amp;lt;math&amp;gt;0\le a_k&amp;lt;p_1\cdot p_2\cdot \ldots \cdot p_{k-1}&amp;lt;/math&amp;gt; – коэффициенты (цифры) ОПС.&lt;br /&gt;
&lt;br /&gt;
Очевидно, что диапазоны чисел, представимых в СОК и ОПС совпадают, т.е. можно говорить о наличии взаимно однозначного соответствия между множеством представлений чисел в СОК и ОПС.&lt;br /&gt;
&lt;br /&gt;
Это равенство можно переписать в следующем виде:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;A = a_1 + p_1(a_2 + p_2(a_3 + \ldots +p_{n-2}(a_{n-1} + p_{n-1} a_n) \ldots ))&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
откуда следует, что цифры ОПС могут быть получены из соотношений:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;a_1 = A - \left[ \frac{A}{p_1}\right] \cdot p_1 = A - A_1\cdot p_1&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;A_1 = \left[ \frac{A}{p_1}\right]&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;a_2 = A_1 - \left[ \frac{A_1}{p_2}\right] \cdot p_2 = A_1 - A_2\cdot p_2&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;A_2 = \left[ \frac{A_1}{p_2}\right]&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\ldots&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;a_n = A_{n-1} - \left[ \frac{A_{n-1}}{p_n}\right] \cdot p_n = A_{n-1} - A_n\cdot p_n&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;A_n = \left[ \frac{A_{n-1}}{p_n}\right]&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Причем при определении цифр &amp;lt;math&amp;gt;a_i&amp;lt;/math&amp;gt; по этим формулам все вычисления можно вести в СОК.&lt;br /&gt;
&lt;br /&gt;
Смотри [[Перевод числа из СОК в обобщенную позиционную систему|Перевод числа из СОК в обобщенную позиционную систему]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Интервальные методы перевода'''&lt;br /&gt;
&lt;br /&gt;
Достаточно эффективными методами перевода чисел из СОК в ПСС являются интервальные методы, основанные на интервальных характеристиках чисел. Одна из таких характеристик – номер интервала.&lt;br /&gt;
&lt;br /&gt;
Смотри [[Интервальные методы перевода|Интервальные методы перевода]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Расширение диапазона представления чисел ==&lt;br /&gt;
&lt;br /&gt;
Расширение системы оснований является одной из основных немодульных операций в СОК. Выполнение этой операции бывает необходимо при выполнении операции деления чисел, при вычислении позиционных характеристик, при обнаружении переполнения при выполнении сложения или умножения чисел.&lt;br /&gt;
&lt;br /&gt;
Задачу расширения системы оснований можно сформулировать следующим образом: найти остаточное представление числа по новому основанию (новым основаниям), если известно представление числа по другим основаниям (остатки от деления на другие числа).&lt;br /&gt;
Один из путей расширения системы оснований состоит в переводе числа в позиционную систему счисления и вычисления остатка от деления на новый модуль. Этот путь не является рациональным с точки зрения числа операций.&lt;br /&gt;
&lt;br /&gt;
Другой метод расширения системы оснований позволяет определить цифру числа по новому основанию, базируясь на таких позиционных характеристиках числа, как ранг числа, след числа. &lt;br /&gt;
&lt;br /&gt;
Смотри [[Расширение диапазона представления чисел|Расширение диапазона представления чисел]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Литература =&lt;br /&gt;
&lt;br /&gt;
Бухштаб А. А. Теория чисел – М: Наука, 1975 г.&lt;br /&gt;
&lt;br /&gt;
Айерленд К. Классическое введение в современную теорию чисел. М: Мир, 1987. &lt;br /&gt;
&lt;br /&gt;
Акушинский И. Л., Юдицкий Д. И. Машинная арифметика в остаточных классах. – М. Советское радио, 1968.&lt;br /&gt;
&lt;br /&gt;
Амербаев В. М. Теоретические основы мащинной арифметики, - Алма –Ата: Наука, 1976.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Дополнительно'':&lt;br /&gt;
&lt;br /&gt;
Куликов Л.Я. Алгебра и теория чисел: Учеб. пособие для педагогических институтов. — М.: Высш. школа, 1979. — 559 с. http://allmath.ru/highermath/algebra/theorychisel-ugu &lt;br /&gt;
&lt;br /&gt;
Сизый С. В. Лекции по теории чисел. Учебное пособие для математических специальностей. Екатеринбург, Уральский государственный университет им. А.М.Горького, 1999. http://stu.sernam.ru/book_algebra.php&lt;/div&gt;</summary>
		<author><name>Isaeva</name></author>	</entry>

	<entry>
		<id>https://vscripts.ru/w/%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BE%D1%81%D1%82%D0%B0%D1%82%D0%BE%D1%87%D0%BD%D1%8B%D1%85_%D0%BA%D0%BB%D0%B0%D1%81%D1%81%D0%BE%D0%B2_-_%D0%B2%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5</id>
		<title>Система остаточных классов - введение</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BE%D1%81%D1%82%D0%B0%D1%82%D0%BE%D1%87%D0%BD%D1%8B%D1%85_%D0%BA%D0%BB%D0%B0%D1%81%D1%81%D0%BE%D0%B2_-_%D0%B2%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5"/>
				<updated>2015-06-24T13:41:27Z</updated>
		
		<summary type="html">&lt;p&gt;Isaeva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Теоретико-числовая база построения системы остаточных классов =&lt;br /&gt;
&lt;br /&gt;
Напомним определение деления с остатком.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Определение''' &lt;br /&gt;
&lt;br /&gt;
Говорят, что целое число &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; делится на натуральное число &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; с остатком, если имеется пара целых чисел &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;, таких, что &amp;lt;math&amp;gt;n = m \cdot q+r&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;0\le r&amp;lt;m&amp;lt;/math&amp;gt;. &lt;br /&gt;
&amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; называется делимым, &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; - делителем, &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; - неполным частным, &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt; - остатком.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Для целых чисел:&lt;br /&gt;
&lt;br /&gt;
'''Определение''' &lt;br /&gt;
&lt;br /&gt;
Говорят, что целое число &amp;lt;math&amp;gt;n \in Z&amp;lt;/math&amp;gt; делится на целое число &amp;lt;math&amp;gt;m \in Z&amp;lt;/math&amp;gt; с остатком, если имеется пара целых чисел &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;, таких, что &amp;lt;math&amp;gt;n = m \cdot q+r&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;0\le r&amp;lt;|m|&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Пример''': &lt;br /&gt;
&lt;br /&gt;
'''48''' при делении на '''5''' даёт остаток '''3''', т.к. &amp;lt;math&amp;gt;48=5\cdot 9+3&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;0\le 3&amp;lt;5&amp;lt;/math&amp;gt;, '''-48''' при делении на '''5''' даёт остаток '''2''', т.к. &amp;lt;math&amp;gt;-48=5\cdot (-10)+2&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;0\le 2&amp;lt;5&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Сравнения и их основные свойства ==&lt;br /&gt;
&lt;br /&gt;
Возьмём произвольное фиксированное натуральное число &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; и будем рассматривать остатки при делении на &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; различных целых чисел.&lt;br /&gt;
&lt;br /&gt;
При рассмотрении свойств этих остатков и проведении операций над ними удобно ввести понятие сравнения по модулю.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Определение''' &lt;br /&gt;
&lt;br /&gt;
Два целых числа &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt; b &amp;lt;/math&amp;gt; называются '''сравнимыми по модулю &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt;''', если их разность &amp;lt;math&amp;gt; a-b &amp;lt;/math&amp;gt; делится без остатка на &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Символически сравнимость записывается в виде формулы ('''сравнения'''):&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;a \equiv b \pmod{m}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Число &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; называется '''модулем''' сравнения.&lt;br /&gt;
&lt;br /&gt;
Эквивалентная формулировка:&lt;br /&gt;
&lt;br /&gt;
'''Определение''' &lt;br /&gt;
&lt;br /&gt;
Целые числа &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt; b &amp;lt;/math&amp;gt; называются '''сравнимыми по модулю &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt;''', если остатки от деления этих чисел на &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; равны.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Отношение сравнимости по модулю &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; обладает свойствами рефлексивности, симметричности и транзитивности, т.е. является отношением эквивалентности.&lt;br /&gt;
&lt;br /&gt;
Отнесём все целые числа, дающие при делении на &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; один и тот же остаток в один класс, поэтому получится &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; различных классов по модулю &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt;.&lt;br /&gt;
Множество всех чисел сравнимых с &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; по модулю &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; называется классом вычетов &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; по модулю &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Подробнее о свойствах сравнений и классах вычетов смотри [[Сравнения и их основные свойства| Сравнения и их основные свойства]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Теорема о делении с остатком. Алгоритм Евклида ==&lt;br /&gt;
&lt;br /&gt;
'''Теорема о делении с остатком'''&lt;br /&gt;
&lt;br /&gt;
Для любых целых &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;b \not= 0&amp;lt;/math&amp;gt;, существует единственный набор целых чисел &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;, что &amp;lt;math&amp;gt;a = bq + r&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;0 \le r &amp;lt; |b|&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;|b|&amp;lt;/math&amp;gt; — модуль числа &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
На этой операции основан алгоритм Евклида нахождения наибольшего общего делителя двух целых чисел.&lt;br /&gt;
&lt;br /&gt;
'''Алгоритм Евклида для целых чисел'''&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; — целые числа, не равные одновременно нулю, и последовательность чисел&lt;br /&gt;
: &amp;lt;math&amp;gt; a &amp;gt; b &amp;gt; r_1 &amp;gt; r_2 &amp;gt; r_3 &amp;gt; r_4 &amp;gt; \cdots &amp;gt;r_n&amp;lt;/math&amp;gt;&lt;br /&gt;
определена тем, что каждое &amp;lt;math&amp;gt;r_k&amp;lt;/math&amp;gt; — это остаток от деления предпредыдущего числа на предыдущее, а предпоследнее делится на последнее нацело, то есть&lt;br /&gt;
: &amp;lt;math&amp;gt;a = bq_0 + r_1&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;b = r_1q_1 + r_2&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;r_1 = r_2q_2 + r_3&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;\cdots&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;r_{k-2} = r_{k-1} q_{k-1} + r_k&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;\cdots&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;r_{n-2} = r_{n-1}q_{n-1}+ r_n&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;r_{n-1} = r_n q_n&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Тогда '''НОД''' &amp;lt;math&amp;gt;(a,b)&amp;lt;/math&amp;gt;, наибольший общий делитель &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt;, равен&lt;br /&gt;
&amp;lt;math&amp;gt;r_n&amp;lt;/math&amp;gt;, последнему ненулевому члену этой последовательности.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Существование''' таких &amp;lt;math&amp;gt;r_1, r_2, ...&amp;lt;/math&amp;gt;, то есть возможность деления с остатком &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; на &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; для любого целого &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и целого &amp;lt;math&amp;gt;b\ne 0&amp;lt;/math&amp;gt;, доказывается индукцией.&lt;br /&gt;
&lt;br /&gt;
'''Корректность''' этого алгоритма вытекает из следующих двух утверждений:&lt;br /&gt;
&lt;br /&gt;
* Пусть &amp;lt;math&amp;gt;a = bq + r&amp;lt;/math&amp;gt;, тогда '''НОД''' &amp;lt;math&amp;gt;(a,b)&amp;lt;/math&amp;gt; = '''НОД''' &amp;lt;math&amp;gt;(b,r)&amp;lt;/math&amp;gt;.&lt;br /&gt;
* '''НОД''' &amp;lt;math&amp;gt;(0,r)&amp;lt;/math&amp;gt; = &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt; для любого ненулевого &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt; (так как 0 делится на любое целое число, кроме нуля).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Смотри [[Теорема о делении с остатком. Алгоритм Евклида|Теорема о делении с остатком. Алгоритм Евклида]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Китайская теорема об остатках ==&lt;br /&gt;
&lt;br /&gt;
Фундаментальным положением, лежащим в основе модулярного представления чисел, является китайская теорема об остатках (Chinese Remainder Theorem - CRT). &lt;br /&gt;
Например, эта теорема гарантирует, что при правильном выборе модулей СОК  &lt;br /&gt;
каждое число из динамического диапазона имеет в СОК единственное представление, &lt;br /&gt;
и по этому представлению можно определить представленное число.&lt;br /&gt;
В своей первоначальной формулировке эта теорема была доказана китайским математиком Сунь-Цзы приблизительно в 100 г. н.э.&lt;br /&gt;
В современной формулировке теорема звучит так:&lt;br /&gt;
&lt;br /&gt;
'''Теорема'''&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;p_1, p_2, \ldots, p_k&amp;lt;/math&amp;gt; - попарно взаимно простые числа, большие 1, и пусть &amp;lt;math&amp;gt;p = p_1 \cdot p_2 \cdot \ldots  \cdot p_k&amp;lt;/math&amp;gt;. Тогда существует единственное неотрицательное решение по модулю &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; следующей системы сравнений:&lt;br /&gt;
: &amp;lt;math&amp;gt;x \equiv a_1 \pmod{p_1}&amp;lt;/math&amp;gt;,&lt;br /&gt;
: &amp;lt;math&amp;gt;x \equiv a_2 \pmod{p_2}&amp;lt;/math&amp;gt;,&lt;br /&gt;
: &amp;lt;math&amp;gt;\ldots&amp;lt;/math&amp;gt;,&lt;br /&gt;
: &amp;lt;math&amp;gt;x \equiv a_k \pmod{p_k}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Другими словами, отображение, которое каждому целому числу &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;0\le x &amp;lt;p&amp;lt;/math&amp;gt;, ставит в соответствие кортеж &amp;lt;math&amp;gt;a_1, a_2,\ldots, a_k&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;x \equiv a_i \pmod{p_i}, i = 1, \ldots k&amp;lt;/math&amp;gt; является биекцией кольца &amp;lt;math&amp;gt;Z_P&amp;lt;/math&amp;gt; на декартово произведение &amp;lt;math&amp;gt;Z_{p_1} \times Z_{p_2} \times \ldots \times Z_{p_k}&amp;lt;/math&amp;gt;  колец &amp;lt;math&amp;gt;Z_{p_1}, Z_{p_2}, \ldots, Z_{p_k}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Подробности и доказательство теоремы смотри [[Китайская теорема об остатках| Китайская теорема об остатках]].&lt;br /&gt;
&lt;br /&gt;
Смотри также [[Описание КТО II|Китайская теорема об остатках(КТО II)]], [[Описание КТО III|Китайская теорема об остатках (КТО III)]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Теоремы Эйлера и Ферма, их роль в вычислении мультипликативных обратных элементов по заданному модулю ==&lt;br /&gt;
&lt;br /&gt;
'''Определение'''&lt;br /&gt;
&lt;br /&gt;
Функция Эйлера &amp;lt;math&amp;gt;\varphi(n)&amp;lt;/math&amp;gt; — это количество чисел от &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; до &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt;, взаимно простых с &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Т.е. это количество таких натуральных чисел из отрезка [1; n], наибольший общий делитель (НОД) которых с &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; равен единице.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Tеоремa Эйлера'''&lt;br /&gt;
&lt;br /&gt;
Если &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; взаимно просты, то &amp;lt;math&amp;gt;a^{\varphi(p)} \equiv 1 \pmod p&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;\varphi(n)&amp;lt;/math&amp;gt; - функция Эйлера.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Частным случаем теоремы Эйлера является малая теорема Ферма.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Малая теорема Ферма'''&lt;br /&gt;
&lt;br /&gt;
Если &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; - простое число и &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; - произвольное целое число, не делящееся на &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;, то &amp;lt;math&amp;gt;a^{p-1} \equiv 1 \pmod p &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Смотри [[Функция Эйлера|Функция Эйлера]], [[Вычисление мультипликативных обратных элементов по заданному модулю|Вычисление мультипликативных обратных элементов по заданному модулю]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Числа Мерсенна, Ферма и операции над ними ==&lt;br /&gt;
&lt;br /&gt;
При рассмотрении отдельных классов простых чисел интерес представляет вопрос о простых числах специального вида, например, таких как числа Мерсенна или числа Ферма.&lt;br /&gt;
&lt;br /&gt;
'''Определение'''&lt;br /&gt;
&lt;br /&gt;
'''Числа Мерсенна''' — числа вида &amp;lt;math&amp;gt;M_n = 2^n - 1&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; — натуральное число.&lt;br /&gt;
Названы в честь французского математика Марена Мерсенна.&lt;br /&gt;
&lt;br /&gt;
Иногда числами Мерсенна называют только числа &amp;lt;math&amp;gt;M_n&amp;lt;/math&amp;gt; с нечетными или простыми индексами ''n''. &lt;br /&gt;
&lt;br /&gt;
Множества простых чисел в этих последовательностях совпадают, а потому понятие ''простого числа Мерсенна'' не зависит от того, как именно определяются числа Мерсенна.&lt;br /&gt;
&lt;br /&gt;
При простых значениях n = p число   может оказаться простым, но может быть составным.&lt;br /&gt;
Например, при &amp;lt;math&amp;gt;p = 2, 3, 5, 7, 13, 17, 19&amp;lt;/math&amp;gt; мы получаем простые числа Мерсенна: &amp;lt;math&amp;gt;3, 7, 31, 127, 8191, 131071&amp;lt;/math&amp;gt;, а при &amp;lt;math&amp;gt;p = 11, 23, 29&amp;lt;/math&amp;gt; числа &amp;lt;math&amp;gt;2^p - 1&amp;lt;/math&amp;gt; - составные. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Определение'''&lt;br /&gt;
&lt;br /&gt;
'''Числа Ферма''' — числа вида &amp;lt;math&amp;gt;F_n=2^{2^n}+1&amp;lt;/math&amp;gt;, где ''n'' — неотрицательное целое число. &lt;br /&gt;
&lt;br /&gt;
При &amp;lt;math&amp;gt;n = 0, 1, 2, 3, 4&amp;lt;/math&amp;gt; числа Ферма простые: &amp;lt;math&amp;gt;3, 5, 17, 257, 65537&amp;lt;/math&amp;gt;. Известно, что для &amp;lt;math&amp;gt;5\le n \le 32&amp;lt;/math&amp;gt; числа &amp;lt;math&amp;gt;F_n&amp;lt;/math&amp;gt; являются составными. На 2014 г. не найдено ни одного простого числа такого вида для &amp;lt;math&amp;gt;n&amp;gt;4&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Все числа Мерсенна и Ферма – взаимно простые. Кроме того, для модулей СОК вида &amp;lt;math&amp;gt;M_n = 2^n - 1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;M_n = 2^n + 1&amp;lt;/math&amp;gt; легко реализуется преобразование и арифметические операции. Поэтому эффективно выбирать модули СОК в виде чисел Мерсенна и Ферма. &lt;br /&gt;
&lt;br /&gt;
Смотри [[Числа Мерсенна и Ферма|Числа Мерсенна и Ферма]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Математические модели модулярного представления и параллельной обработки информации =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Определение системы остаточных классов==&lt;br /&gt;
&lt;br /&gt;
Представление чисел в виде набора остатков от деления на выбранные натуральные модули - основания системы называется системой остаточных классов - СОК (residue number system - RNS) или модулярной системой счисления - МСС (modular system).&lt;br /&gt;
&lt;br /&gt;
Смотри [[Система остаточных классов|Система остаточных классов]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Выбор СОК как системы счисления ==&lt;br /&gt;
&lt;br /&gt;
Под системой счисления понимают совокупность символический метод записи чисел, представление чисел с помощью письменных знаков, или, точнее, способ кодирования (представления) элементов некоторой конечной модели действительных чисел словами одного или более алфавитов. &lt;br /&gt;
&lt;br /&gt;
К любой кодовой системе применимы следующие требования:&lt;br /&gt;
&lt;br /&gt;
* возможность представления в данной системе любой величины в рассматриваемом, заранее назначенном диапазоне;&lt;br /&gt;
* единственность представления – любая кодовая комбинация соответствует одному и только одному числу в заданном диапазоне;&lt;br /&gt;
* простота оперирования числами в данной системе счисления.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Системы счисления подразделяются на позиционные, непозиционные и смешанные. ([https://ru.wikipedia.org/wiki/%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D1%81%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F#.D0.9D.D0.B5.D0.BF.D0.BE.D0.B7.D0.B8.D1.86.D0.B8.D0.BE.D0.BD.D0.BD.D1.8B.D0.B5_.D1.81.D0.B8.D1.81.D1.82.D0.B5.D0.BC.D1.8B_.D1.81.D1.87.D0.B8.D1.81.D0.BB.D0.B5.D0.BD.D0.B8.D1.8F Система счисления])&lt;br /&gt;
&lt;br /&gt;
В позиционных системах счисления один и тот же числовой знак (цифра) в записи числа имеет различные значения в зависимости от того места (разряда), где он расположен.  Обычно используется b-ричная система счисления, которая определяется целым числом b&amp;gt;1, называемым основанием системы счисления.  &lt;br /&gt;
&lt;br /&gt;
Смешанная система счисления является обобщением b-ричной системы счисления и также зачастую относится к позиционным системам счисления. Смотри [[Полиадический код|Полиадический код]].&lt;br /&gt;
&lt;br /&gt;
В непозиционных системах счисления величина, которую обозначает цифра, не зависит от её положения в числе. При этом система может накладывать ограничения на положение цифр.&lt;br /&gt;
&lt;br /&gt;
Всякая вычислительная структура тесно связана с системой счисления, в которой она работает. &lt;br /&gt;
&lt;br /&gt;
В обычной позиционной системе счисления (ПСС) значение разряда любого числа, кроме младшего, являющегося результатом двухместной арифметической операции, зависит не только от значения одноимённых операндов, но и от всех младших разрядов, т. е. ПСС обладает строго последовательной структурой. &lt;br /&gt;
Напротив, непозиционные коды с параллельной структурой позволяют реализовать распараллеливание операций на уровне выполнения элементарных арифметических действий. &lt;br /&gt;
&lt;br /&gt;
В качестве такой непозиционной системы удобна система остаточных классов (СОК). &lt;br /&gt;
&lt;br /&gt;
Базовые арифметические операции в СОК делятся на две группы: модульные и немодульные.&lt;br /&gt;
&lt;br /&gt;
* Модульные операции, которые могут быть выполнены параллельно и независимо над отдельными цифрами чисел: сложение, умножение, вычитание без знака.&lt;br /&gt;
&lt;br /&gt;
* Немодульные операции, которые требуют знания величины модулярных чисел в целом: сравнение, вычитание с получением отрицательного результата, контроль переполнения модулярного числа.&lt;br /&gt;
&lt;br /&gt;
Основным достоинством системы остаточных классов является сравнительная простота выполнения модульных операций, недостатком - большая трудоемкость немодульных операций.&lt;br /&gt;
&lt;br /&gt;
Смотри [[Представление числа в системе остаточных классов|Представление числа в системе остаточных классов]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Модульные операции над числами в системе остаточных классов ==&lt;br /&gt;
&lt;br /&gt;
Возможность применения СОК в вычислительных алгоритмах обусловлено наличием определённого изоморфизма между математическими операциями над целыми числами и соответствующими операциями над системой целых неотрицательных остатков по отдельным модулям. Сложение, умножение, возведение в целую положительную степень любых целых положительных чисел идентичны соответствующим операциям, выполняемым над системой остатков. &lt;br /&gt;
&lt;br /&gt;
Смотри [[Модульные операции|Модульные операции]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Основные методы и алгоритмы перехода от позиционного представления к остаткам ==&lt;br /&gt;
&lt;br /&gt;
Обычно исходные данные для вычислений представлены в каком-либо традиционном представлении, двоичном или десятичном. В таком же виде ожидаются результаты вычислений. Отсюда понятна необходимость перевода чисел из позиционного представления в представление СОК (прямое преобразование) и обратно (обратное преобразование). Одной из первых немодульных процедур является прямое преобразование позиционных кодов в код СОК.&lt;br /&gt;
&lt;br /&gt;
Перевод числа в систему остаточных классов можно осуществить непосредственно методом деления, с модулями СОК в качестве делителей. Однако из-за сложности операции деления техническая реализация такого метода неэффективна.&lt;br /&gt;
Поэтому рассматриваются другие методы.&lt;br /&gt;
Например, часто используется метод перевода числа из позиционной системы счисления в СОК, не содержащий операции деления, называемый методом непосредственного суммирования модульных значений разрядов позиционного числа.&lt;br /&gt;
&lt;br /&gt;
Смотри [[Алгоритмы перехода от позиционного представления к остаткам|Алгоритмы перехода от позиционного представления к остаткам]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Восстановление позиционного представления числа по его остаткам ==&lt;br /&gt;
&lt;br /&gt;
Система остаточных классов обладает одной особенностью, которую можно отнести к недостаткам этой системы: нельзя визуально определить величину числа, представленного в СОК, а следовательно затруднительно и выполнение таких операций, как сравнение чисел, определение знака числа. Один из путей решения этой проблемы состоит в преобразовании чисел из СОК в позиционную систему счисления. Оценим существующие способы перевода, как традиционные: метод ортогональных базисов; перевод числа в обобщенную позиционную систему (ОПС), так и недавно появившиеся интервальные методы перевода.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Метод ортогональных базисов'''&lt;br /&gt;
&lt;br /&gt;
Метод восстановления числа по его остаткам был найден еще в Китае две тысячи лет назад. Основой этого метода является теорема, названная [[Китайская теорема об остатках| Китайской теоремой об остатках (КТО)]].&lt;br /&gt;
&lt;br /&gt;
Эта теорема лежит в основе метода ортогональных базисов при переводе из системы остаточных классов в позиционную систему счисления.&lt;br /&gt;
&lt;br /&gt;
Смотри [[Метод ортогональных базисов|Метод ортогональных базисов]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Перевод числа из СОК в обобщенную позиционную систему (ОПС)'''&lt;br /&gt;
&lt;br /&gt;
Еще один метод определения величины числа связан с переводом числа из системы остаточных классов в ОПС. Для того, чтобы рассмотреть этот метод, выявим связь между представлением некоторого числа в этих двух системах. &lt;br /&gt;
&lt;br /&gt;
Пусть по-прежнему СОК задается основаниями &amp;lt;math&amp;gt;p_1, p_2, \ldots, p_n&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;A = ({\alpha}_1, {\alpha}_2, \ldots, {\alpha}_n)&amp;lt;/math&amp;gt; - число в этой системе. И пусть &amp;lt;math&amp;gt;p_1, p_2, \ldots, p_n&amp;lt;/math&amp;gt; являются также основаниями ОПС, тогда число &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt; можно представить в виде&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;A = a_n\cdot p_1\cdot p_2\cdot \ldots \cdot p_{n-1} + a_{n-1}\cdot p_1\cdot p_2\cdot \ldots \cdot p_{n-2} + \ldots + a_3\cdot p_1\cdot p_2 + a_2\cdot p_1 + a_1&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
где &amp;lt;math&amp;gt;0\le a_k&amp;lt;p_1\cdot p_2\cdot \ldots \cdot p_{k-1}&amp;lt;/math&amp;gt; – коэффициенты (цифры) ОПС.&lt;br /&gt;
&lt;br /&gt;
Очевидно, что диапазоны чисел, представимых в СОК и ОПС совпадают, т.е. можно говорить о наличии взаимно однозначного соответствия между множеством представлений чисел в СОК и ОПС.&lt;br /&gt;
&lt;br /&gt;
Это равенство можно переписать в следующем виде:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;A = a_1 + p_1(a_2 + p_2(a_3 + \ldots +p_{n-2}(a_{n-1} + p_{n-1} a_n) \ldots ))&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
откуда следует, что цифры ОПС могут быть получены из соотношений:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;a_1 = A - \left[ \frac{A}{p_1}\right] \cdot p_1 = A - A_1\cdot p_1&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;A_1 = \left[ \frac{A}{p_1}\right]&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;a_2 = A_1 - \left[ \frac{A_1}{p_2}\right] \cdot p_2 = A_1 - A_2\cdot p_2&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;A_2 = \left[ \frac{A_1}{p_2}\right]&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\ldots&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;a_n = A_{n-1} - \left[ \frac{A_{n-1}}{p_n}\right] \cdot p_n = A_{n-1} - A_n\cdot p_n&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;A_n = \left[ \frac{A_{n-1}}{p_n}\right]&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Причем при определении цифр &amp;lt;math&amp;gt;a_i&amp;lt;/math&amp;gt; по этим формулам все вычисления можно вести в СОК.&lt;br /&gt;
&lt;br /&gt;
Смотри [[Перевод числа из СОК в обобщенную позиционную систему|Перевод числа из СОК в обобщенную позиционную систему]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Интервальные методы перевода'''&lt;br /&gt;
&lt;br /&gt;
Достаточно эффективными методами перевода чисел из СОК в ПСС являются интервальные методы, основанные на интервальных характеристиках чисел. Одна из таких характеристик – номер интервала.&lt;br /&gt;
&lt;br /&gt;
Смотри [[Интервальные методы перевода|Интервальные методы перевода]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Расширение диапазона представления чисел ==&lt;br /&gt;
&lt;br /&gt;
Расширение системы оснований является одной из основных немодульных операций в СОК. Выполнение этой операции бывает необходимо при выполнении операции деления чисел, при вычислении позиционных характеристик, при обнаружении переполнения при выполнении сложения или умножения чисел.&lt;br /&gt;
&lt;br /&gt;
Задачу расширения системы оснований можно сформулировать следующим образом: найти остаточное представление числа по новому основанию (новым основаниям), если известно представление числа по другим основаниям (остатки от деления на другие числа).&lt;br /&gt;
Один из путей расширения системы оснований состоит в переводе числа в позиционную систему счисления и вычисления остатка от деления на новый модуль. Этот путь не является рациональным с точки зрения числа операций.&lt;br /&gt;
&lt;br /&gt;
Другой метод расширения системы оснований позволяет определить цифру числа по новому основанию, базируясь на таких позиционных характеристиках числа, как ранг числа, след числа. &lt;br /&gt;
&lt;br /&gt;
Смотри [[Расширение диапазона представления чисел|Расширение диапазона представления чисел]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Литература =&lt;br /&gt;
&lt;br /&gt;
Бухштаб А. А. Теория чисел – М: Наука, 1975 г.&lt;br /&gt;
&lt;br /&gt;
Айерленд К. Классическое введение в современную теорию чисел. М: Мир, 1987. &lt;br /&gt;
&lt;br /&gt;
Акушинский И. Л., Юдицкий Д. И. Машинная арифметика в остаточных классах. – М. Советское радио, 1968.&lt;br /&gt;
&lt;br /&gt;
Амербаев В. М. Теоретические основы мащинной арифметики, - Алма –Ата: Наука, 1976.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Дополнительно'':&lt;br /&gt;
&lt;br /&gt;
Куликов Л.Я. Алгебра и теория чисел: Учеб. пособие для педагогических институтов. — М.: Высш. школа, 1979. — 559 с. http://allmath.ru/highermath/algebra/theorychisel-ugu &lt;br /&gt;
&lt;br /&gt;
Сизый С. В. Лекции по теории чисел. Учебное пособие для математических специальностей. Екатеринбург, Уральский государственный университет им. А.М.Горького, 1999. http://stu.sernam.ru/book_algebra.php&lt;/div&gt;</summary>
		<author><name>Isaeva</name></author>	</entry>

	<entry>
		<id>https://vscripts.ru/w/%D0%A2%D0%B5%D0%BE%D1%80%D0%B5%D0%BC%D0%B0_%D0%BE_%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D0%B8_%D1%81_%D0%BE%D1%81%D1%82%D0%B0%D1%82%D0%BA%D0%BE%D0%BC._%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%95%D0%B2%D0%BA%D0%BB%D0%B8%D0%B4%D0%B0</id>
		<title>Теорема о делении с остатком. Алгоритм Евклида</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%A2%D0%B5%D0%BE%D1%80%D0%B5%D0%BC%D0%B0_%D0%BE_%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D0%B8_%D1%81_%D0%BE%D1%81%D1%82%D0%B0%D1%82%D0%BA%D0%BE%D0%BC._%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%95%D0%B2%D0%BA%D0%BB%D0%B8%D0%B4%D0%B0"/>
				<updated>2015-06-24T13:07:41Z</updated>
		
		<summary type="html">&lt;p&gt;Isaeva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Напомним теорему о делении с остатком:&lt;br /&gt;
&lt;br /&gt;
'''Теорема о делении с остатком'''&lt;br /&gt;
&lt;br /&gt;
Для любых целых &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;b \not= 0&amp;lt;/math&amp;gt;, существует единственный набор целых чисел &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;, что &amp;lt;math&amp;gt;a = bq + r&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;0 \le r &amp;lt; |b|&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;|b|&amp;lt;/math&amp;gt; — модуль числа &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Легко доказывается, что для любых целых чисел &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;b \not= 0&amp;lt;/math&amp;gt; деление с остатком возможно и числа &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt; определяются однозначно. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Рассмотрим следующий пример:&lt;br /&gt;
&lt;br /&gt;
'''Пример'''&lt;br /&gt;
&lt;br /&gt;
Пусть модуль &amp;lt;math&amp;gt;p = 6&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Тогда имеем шесть классов разбиения множества целых чисел по модулю 6:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;K_0 = \left\{\ldots,-18,-12,-6,0,6,12,18,\ldots \right\}, r=0&amp;lt;/math&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;K_1 = \left\{\ldots,-17,-11,-5,1,7,13,19,\ldots \right\}, r=1&amp;lt;/math&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;K_2 = \left\{\ldots,-16,-10,-4,2,8,14,20,\ldots \right\}, r=2&amp;lt;/math&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;K_3 = \left\{\ldots,-15,-9,-3,3,9,15,21,\ldots \right\}, r=3&amp;lt;/math&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;K_4 = \left\{\ldots,-14,-8,-2,4,10,16,22,\ldots \right\}, r=4&amp;lt;/math&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;K_5 = \left\{\ldots,-13,-7,-1,5,11,17,23,\ldots \right\}, r=5&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
где через &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt; обозначен остаток от деления целого числа на 6.&lt;br /&gt;
&lt;br /&gt;
В данном примере полная система наименьших неотрицательных вычетов есть множество &amp;lt;math&amp;gt;\left\{0, 1, 2, 3, 4, 5 \right\}&amp;lt;/math&amp;gt;; &lt;br /&gt;
&lt;br /&gt;
полная система наименьших положительных вычетов – множество &amp;lt;math&amp;gt;\left\{1, 2, 3, 4, 5, 6 \right\}&amp;lt;/math&amp;gt;; &lt;br /&gt;
&lt;br /&gt;
полная система наименьших по абсолютной величине вычетов – множество &amp;lt;math&amp;gt;\left\{-2,-1, 0, 1, 2, 3 \right\}&amp;lt;/math&amp;gt;; &lt;br /&gt;
&lt;br /&gt;
приведённая система вычетов – множество &amp;lt;math&amp;gt;\left\{1,5 \right\}&amp;lt;/math&amp;gt;, так как &amp;lt;math&amp;gt;\varphi(6) = 6\,\left(1-\frac{1}{2}\right)\left(1-\frac{1}{3}\right) = 2&amp;lt;/math&amp;gt;; &lt;br /&gt;
&lt;br /&gt;
фактор-множество &amp;lt;math&amp;gt;Z{|{\equiv}_6} = \left\{K_0, K_1, K_2, K_3, K_4, K_5 \right\}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Один из методов выполнения арифметических операций над целыми числами основан на простых положениях теории чисел. Идея этого метода состоит в том, что целые числа представляются в одной из непозиционных систем – в системе остаточных классов. А именно: вместо операций над целыми числами оперируют с остатками от деления этих чисел на заранее выбранные числа – модули &amp;lt;math&amp;gt;p_1, p_2, \ldots, p_n&amp;lt;/math&amp;gt;. &lt;br /&gt;
Чаще всего модули &amp;lt;math&amp;gt;p_1, p_2, \ldots, p_n&amp;lt;/math&amp;gt; выбирают из множества простых чисел.&lt;br /&gt;
&lt;br /&gt;
Пусть&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;A \equiv {\alpha}_1 \pmod{p_1}&amp;lt;/math&amp;gt;,&lt;br /&gt;
: &amp;lt;math&amp;gt;A \equiv {\alpha}_2 \pmod{p_2}&amp;lt;/math&amp;gt;,&lt;br /&gt;
: &amp;lt;math&amp;gt;\ldots&amp;lt;/math&amp;gt;,&lt;br /&gt;
: &amp;lt;math&amp;gt;A \equiv {\alpha}_n \pmod{p_n}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Так как в кольце целых чисел имеет место теорема о делении с остатком, т. е. &amp;lt;math&amp;gt;\forall a \in Z, \forall b \in Z, b\not= 0 \, \exist q \in Z, \exist r \in Z (0 \le r &amp;lt;b):\, a=bq+r &amp;lt;/math&amp;gt;, то кольцо Z, по определению, является евклидовым. Таким образом, в качестве чисел &amp;lt;math&amp;gt; {\alpha}_i, i=0,\ldots,n &amp;lt;/math&amp;gt; можно выбрать остатки от деления числа &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt; на &amp;lt;math&amp;gt;p_i&amp;lt;/math&amp;gt; соответственно.&lt;br /&gt;
&lt;br /&gt;
Рассмотрим гомоморфное отображение: &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;Z \to Z{|{\equiv}_{p_1}} \times Z{|{\equiv}_{p_2}} \times \ldots \times Z{|{\equiv}_{p_n}} &amp;lt;/math&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
Тогда каждому целому числу &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt; можно поставить в соответствие кортеж &amp;lt;math&amp;gt;\left\{{\alpha}_1, {\alpha}_2, \ldots, {\alpha}_n \right\}&amp;lt;/math&amp;gt; наименьших неотрицательных вычетов по одному из соответствующих классов. &lt;br /&gt;
&lt;br /&gt;
Важно отметить, что при преобразовании числа нет потери информации, если выполнено условие &amp;lt;math&amp;gt;A &amp;lt; p_1 \cdot p_2 \cdot \ldots \cdot p_n&amp;lt;/math&amp;gt;, поскольку всегда, зная &amp;lt;math&amp;gt;\left({\alpha}_1, {\alpha}_2, \ldots, {\alpha}_n \right)&amp;lt;/math&amp;gt; можно восстановить само число &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt;. Поэтому кортеж  можно рассматривать как один из способов представления целого числа &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt; – модулярное представление, или представление в системе остаточных классов (СОК).&lt;br /&gt;
&lt;br /&gt;
Для дальнейшего используем расширенный алгоритм Евклида или его аналог – алгоритм нахождения линейного представления наибольшего общего делителя целых чисел: если числа а и b одновременно не равны нулю, то существуют целые числа &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt;, такие, что &amp;lt;math&amp;gt;a \cdot b = a \cdot x + b \cdot y&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Действительно, пусть &amp;lt;math&amp;gt;d&amp;lt;/math&amp;gt; – наименьшее целое положительное число вида &amp;lt;math&amp;gt;a \cdot x + b \cdot y&amp;lt;/math&amp;gt;, например, &amp;lt;math&amp;gt;d = a \cdot x_0 + b \cdot y_0&amp;lt;/math&amp;gt;, где числа &amp;lt;math&amp;gt;x_0&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;y_0&amp;lt;/math&amp;gt; не обязательно определены однозначно. Существование числа &amp;lt;math&amp;gt;d&amp;lt;/math&amp;gt; следует только из принципа полной упорядоченности. Очевидно, что &amp;lt;math&amp;gt;d &amp;gt; 0&amp;lt;/math&amp;gt;. Остаётся показать, что &amp;lt;math&amp;gt;d = (a,b)&amp;lt;/math&amp;gt;. Для этого надо проверить выполнение двух условий: а) &amp;lt;math&amp;gt;d|a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;d|b&amp;lt;/math&amp;gt; б) если &amp;lt;math&amp;gt;c|a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;c|b&amp;lt;/math&amp;gt;&lt;br /&gt;
то &amp;lt;math&amp;gt;c|d&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
От противного: допустим, что свойство а) не выполняется, для определенности положим, что не выполнено &amp;lt;math&amp;gt;d|b&amp;lt;/math&amp;gt;. Тогда по теореме о делении с остатком &amp;lt;math&amp;gt;a = dq + r&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;0 \le r &amp;lt; |d|&amp;lt;/math&amp;gt;, и, следовательно, &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;r=b-dq = b-(ax_0+by_0)q = a(-qx_0)+b(1-qy_0)&amp;lt;/math&amp;gt;, &lt;br /&gt;
&lt;br /&gt;
что противоречит минимальности &amp;lt;math&amp;gt;d&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Выполнение свойства б) проверяется непосредственно: &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;c|a \Rightarrow \left(\exist q_1 \in Z\right)\left(a = q_1\, c\right)&amp;lt;/math&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;c|b \Rightarrow \left(\exist q_2 \in Z\right)\left(a = q_2\, c\right)&amp;lt;/math&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;d=ax_0 + by_0 \Rightarrow d = q_1 c x_0 + q_2 c y_0 \Rightarrow d = \left(q_1 x_0 + q_2 y_0\right) c|d &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Алгоритм Евклида для целых чисел'''&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; — целые числа, не равные одновременно нулю, и последовательность чисел&lt;br /&gt;
: &amp;lt;math&amp;gt; a &amp;gt; b &amp;gt; r_1 &amp;gt; r_2 &amp;gt; r_3 &amp;gt; r_4 &amp;gt; \cdots &amp;gt;r_n&amp;lt;/math&amp;gt;&lt;br /&gt;
определена тем, что каждое &amp;lt;math&amp;gt;r_k&amp;lt;/math&amp;gt; — это остаток от деления предпредыдущего числа на предыдущее, а предпоследнее делится на последнее нацело, то есть&lt;br /&gt;
: &amp;lt;math&amp;gt;a = bq_0 + r_1&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;b = r_1q_1 + r_2&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;r_1 = r_2q_2 + r_3&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;\cdots&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;r_{k-2} = r_{k-1} q_{k-1} + r_k&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;\cdots&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;r_{n-2} = r_{n-1}q_{n-1}+ r_n&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;r_{n-1} = r_n q_n&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Тогда '''НОД''' &amp;lt;math&amp;gt;(a,b)&amp;lt;/math&amp;gt;, наибольший общий делитель &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt;, равен&lt;br /&gt;
&amp;lt;math&amp;gt;r_n&amp;lt;/math&amp;gt;, последнему ненулевому члену этой последовательности.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Существование''' таких &amp;lt;math&amp;gt;r_1, r_2, ...&amp;lt;/math&amp;gt;, то есть возможность деления с остатком &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; на &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; для любого целого &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и целого &amp;lt;math&amp;gt;b\ne 0&amp;lt;/math&amp;gt;, доказывается индукцией.&lt;br /&gt;
&lt;br /&gt;
'''Корректность''' этого алгоритма вытекает из следующих двух утверждений:&lt;br /&gt;
&lt;br /&gt;
* Пусть &amp;lt;math&amp;gt;a = bq + r&amp;lt;/math&amp;gt;, тогда '''НОД''' &amp;lt;math&amp;gt;(a,b)&amp;lt;/math&amp;gt; = '''НОД''' &amp;lt;math&amp;gt;(b,r)&amp;lt;/math&amp;gt;.&lt;br /&gt;
* '''НОД''' &amp;lt;math&amp;gt;(0,r)&amp;lt;/math&amp;gt; = &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt; для любого ненулевого &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt; (так как 0 делится на любое целое число, кроме нуля).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Расширенный алгоритм Евклида для целых чисел'''&lt;br /&gt;
&lt;br /&gt;
Рассмотрим расширенный алгоритм Евклида для нахождения линейного представления наибольшего общего делителя &amp;lt;math&amp;gt;(a,b) = ax + by &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Значения &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt; вычисляются в серии шагов, в каждом из которых мы выражаем &amp;lt;math&amp;gt;a_i&amp;lt;/math&amp;gt; (вычисленное в процессе работы алгоритма Евклида) в форме &amp;lt;math&amp;gt;a x_i + b y_i &amp;lt;/math&amp;gt;. А именно, рассмотрим последовательность&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;a_0 = a&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;a_0 = a x_0 + b y_0&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;a_1 = b&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;a_1 = a x_1 + b y_1&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;a_2 = a_0 - a_1 q_1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;a_2 = a x_2 + b y_2&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;a_3 = a_1 - a_2 q_2&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;a_3 = a x_3 + b y_3&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;\cdots&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;a_i = a_{i-2} - a_{i-1} q_{i-1}&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;a_i = a x_i + b y_i&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;\cdots&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;a_k = a_{k-2} - a_{k-1} q_{k-1}&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;a_k = a x_k + b y_k&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;0 = a_{k-1} - a_k q_k&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;0 = a x_{k+1} + b y_{k+1}&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В левом столбце алгоритма записана последовательность делений, которая получается в результате работы алгоритма Евклида и которая разрешена относительно остатков. Согласно теореме Ламе (1844 г.) число делений, которое необходимо выполнить для нахождения &amp;lt;math&amp;gt;(a,b)&amp;lt;/math&amp;gt;, не превосходит числа цифр в меньшем из чисел &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt;, умноженного на 5 (оценка наихудшего случая для алгоритма Евклида). Теорема Ламе доказывается на основе последовательности Фибоначчи.&lt;br /&gt;
&lt;br /&gt;
В правом столбце алгоритма каждый остаток выражен через &amp;lt;math&amp;gt;a x_i + b y_i&amp;lt;/math&amp;gt;. Надо вычислить &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;y_i&amp;lt;/math&amp;gt;. Очевидно, что &amp;lt;math&amp;gt;x_0 = 1, y_0 = 0&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;x_1 = 0, y_1 = 1&amp;lt;/math&amp;gt;. Сравнивая обе части на ''i''-м шаге, получим &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;a_i = a x_i + b y_i = a_{i-2} - a_{i-1} q_{i-1} = \left(a x_{i-2} + b y_{i-2} \right) - \left(a x_{i-1} + b y_{i-1} \right) q_{i-1} =&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \left(a x_{i-2} - x_{i-1} q_{i-1} \right) + \left(b y_{i-2} - y_{i-1} q_{i-1} \right)&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
откуда получается следующая индуктивная процедура вычисления &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;y_i&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;q_{i-1} = \left \lfloor \frac{a_{i-2}}{a_{i-1}} \right \rfloor&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;a_i = a_{i-2} - a_{i-1} q_{i-1}&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;x_i = x_{i-2} - x_{i-1} q_{i-1}&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;y_i = y_{i-2} - y_{i-1} q_{i-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Пример (Расширенный алгоритм Евклида)'''. &lt;br /&gt;
&lt;br /&gt;
Применим расширенный алгоритм Евклида к числам &amp;lt;math&amp;gt;a = 342, b = 612&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Весь алгоритм представим в виде следующей таблицы.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \begin{array}{|c|r|r|r|r|r|r|r|} \hline Iteration &amp;amp; q &amp;amp; a_0 &amp;amp; a_1 &amp;amp; x_0 &amp;amp; x_1 &amp;amp; y_0 &amp;amp; y_1 &lt;br /&gt;
\\ \hline 0 &amp;amp; - &amp;amp; 342 &amp;amp; 612 &amp;amp;  1 &amp;amp;   0 &amp;amp;  0 &amp;amp;  1&lt;br /&gt;
\\ \hline 1 &amp;amp; 0 &amp;amp; 612 &amp;amp; 342 &amp;amp;  0 &amp;amp;   1 &amp;amp;  1 &amp;amp;  0&lt;br /&gt;
\\ \hline 2 &amp;amp; 1 &amp;amp; 342 &amp;amp; 270 &amp;amp;  1 &amp;amp;  -1 &amp;amp;  0 &amp;amp;  1&lt;br /&gt;
\\ \hline 3 &amp;amp; 1 &amp;amp; 270 &amp;amp;  72 &amp;amp; -1 &amp;amp;   2 &amp;amp;  1 &amp;amp; -1&lt;br /&gt;
\\ \hline 4 &amp;amp; 3 &amp;amp;  72 &amp;amp;  54 &amp;amp;  2 &amp;amp;  -7 &amp;amp; -1 &amp;amp;  4&lt;br /&gt;
\\ \hline 5 &amp;amp; 1 &amp;amp;  54 &amp;amp;  18 &amp;amp; -7 &amp;amp;   9 &amp;amp;  4 &amp;amp; -5&lt;br /&gt;
\\ \hline 6 &amp;amp; 3 &amp;amp;  18 &amp;amp;   0 &amp;amp;  9 &amp;amp; -34 &amp;amp; -5 &amp;amp; 19&lt;br /&gt;
&lt;br /&gt;
\\ \hline \end{array} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Заметим, что равенство &amp;lt;math&amp;gt;a_0 = a x_0 + b y_0&amp;lt;/math&amp;gt; выполняется на каждом шаге итерации. Алгоритм выдаёт &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;d = 18, x = 9, y = -5&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
и тогда &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;18=342 \cdot 9 + 612 \cdot (-5)&amp;lt;/math&amp;gt;.&lt;/div&gt;</summary>
		<author><name>Isaeva</name></author>	</entry>

	<entry>
		<id>https://vscripts.ru/w/%D0%A2%D0%B5%D0%BE%D1%80%D0%B5%D0%BC%D0%B0_%D0%BE_%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D0%B8_%D1%81_%D0%BE%D1%81%D1%82%D0%B0%D1%82%D0%BA%D0%BE%D0%BC._%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%95%D0%B2%D0%BA%D0%BB%D0%B8%D0%B4%D0%B0</id>
		<title>Теорема о делении с остатком. Алгоритм Евклида</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%A2%D0%B5%D0%BE%D1%80%D0%B5%D0%BC%D0%B0_%D0%BE_%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D0%B8_%D1%81_%D0%BE%D1%81%D1%82%D0%B0%D1%82%D0%BA%D0%BE%D0%BC._%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%95%D0%B2%D0%BA%D0%BB%D0%B8%D0%B4%D0%B0"/>
				<updated>2015-06-24T13:02:57Z</updated>
		
		<summary type="html">&lt;p&gt;Isaeva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Напомним теорему о делении с остатком:&lt;br /&gt;
&lt;br /&gt;
'''Теорема о делении с остатком'''&lt;br /&gt;
&lt;br /&gt;
Для любых целых &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;b \not= 0&amp;lt;/math&amp;gt;, существует единственный набор целых чисел &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;, что &amp;lt;math&amp;gt;a = bq + r&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;0 \le r &amp;lt; |b|&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;|b|&amp;lt;/math&amp;gt; — модуль числа &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Легко доказывается, что для любых целых чисел &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;b \not= 0&amp;lt;/math&amp;gt; деление с остатком возможно и числа &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt; определяются однозначно. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Рассмотрим следующий пример:&lt;br /&gt;
&lt;br /&gt;
'''Пример'''&lt;br /&gt;
&lt;br /&gt;
Пусть модуль &amp;lt;math&amp;gt;p = 6&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Тогда имеем шесть классов разбиения множества целых чисел по модулю 6:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;K_0 = \left\{\ldots,-18,-12,-6,0,6,12,18,\ldots \right\}, r=0&amp;lt;/math&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;K_1 = \left\{\ldots,-17,-11,-5,1,7,13,19,\ldots \right\}, r=1&amp;lt;/math&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;K_2 = \left\{\ldots,-16,-10,-4,2,8,14,20,\ldots \right\}, r=2&amp;lt;/math&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;K_3 = \left\{\ldots,-15,-9,-3,3,9,15,21,\ldots \right\}, r=3&amp;lt;/math&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;K_4 = \left\{\ldots,-14,-8,-2,4,10,16,22,\ldots \right\}, r=4&amp;lt;/math&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;K_5 = \left\{\ldots,-13,-7,-1,5,11,17,23,\ldots \right\}, r=5&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
где через &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt; обозначен остаток от деления целого числа на 6.&lt;br /&gt;
&lt;br /&gt;
В данном примере полная система наименьших неотрицательных вычетов есть множество &amp;lt;math&amp;gt;\left\{0, 1, 2, 3, 4, 5 \right\}&amp;lt;/math&amp;gt;; полная система наименьших положительных вычетов – множество &amp;lt;math&amp;gt;\left\{1, 2, 3, 4, 5, 6 \right\}&amp;lt;/math&amp;gt;; полная система наименьших по абсолютной величине вычетов – множество &amp;lt;math&amp;gt;\left\{-2,-1, 0, 1, 2, 3 \right\}&amp;lt;/math&amp;gt;; приведённая система вычетов – множество &amp;lt;math&amp;gt;\left\{1,5 \right\}&amp;lt;/math&amp;gt;, так как &amp;lt;math&amp;gt;\varphi(6) = 6\,\left(1-\frac{1}{2}\right)\left(1-\frac{1}{3}\right) = 2&amp;lt;/math&amp;gt; ; фактор-множество &amp;lt;math&amp;gt;Z{|{\equiv}_6} = \left\{K_0, K_1, K_2, K_3, K_4, K_5 \right\}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Один из методов выполнения арифметических операций над целыми числами основан на простых положениях теории чисел. Идея этого метода состоит в том, что целые числа представляются в одной из непозиционных систем – в системе остаточных классов. А именно: вместо операций над целыми числами оперируют с остатками от деления этих чисел на заранее выбранные числа – модули &amp;lt;math&amp;gt;p_1, p_2, \ldots, p_n&amp;lt;/math&amp;gt;. &lt;br /&gt;
Чаще всего модули &amp;lt;math&amp;gt;p_1, p_2, \ldots, p_n&amp;lt;/math&amp;gt; выбирают из множества простых чисел.&lt;br /&gt;
&lt;br /&gt;
Пусть&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;A \equiv {\alpha}_1 \pmod{p_1}&amp;lt;/math&amp;gt;,&lt;br /&gt;
: &amp;lt;math&amp;gt;A \equiv {\alpha}_2 \pmod{p_2}&amp;lt;/math&amp;gt;,&lt;br /&gt;
: &amp;lt;math&amp;gt;\ldots&amp;lt;/math&amp;gt;,&lt;br /&gt;
: &amp;lt;math&amp;gt;A \equiv {\alpha}_n \pmod{p_n}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Так как в кольце целых чисел имеет место теорема о делении с остатком, т. е. &amp;lt;math&amp;gt;\forall a \in Z, \forall b \in Z, b\not= 0 \, \exist q \in Z, \exist r \in Z (0 \le r &amp;lt;b):\, a=bq+r &amp;lt;/math&amp;gt;, то кольцо Z, по определению, является евклидовым. Таким образом, в качестве чисел &amp;lt;math&amp;gt; {\alpha}_i, i=0,\ldots,n &amp;lt;/math&amp;gt; можно выбрать остатки от деления числа &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt; на &amp;lt;math&amp;gt;p_i&amp;lt;/math&amp;gt; соответственно.&lt;br /&gt;
&lt;br /&gt;
Рассмотрим гомоморфное отображение: &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;Z \to Z{|{\equiv}_{p_1}} \times Z{|{\equiv}_{p_2}} \times \ldots \times Z{|{\equiv}_{p_n}} &amp;lt;/math&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
Тогда каждому целому числу &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt; можно поставить в соответствие кортеж &amp;lt;math&amp;gt;\left\{{\alpha}_1, {\alpha}_2, \ldots, {\alpha}_n \right\}&amp;lt;/math&amp;gt; наименьших неотрицательных вычетов по одному из соответствующих классов. &lt;br /&gt;
&lt;br /&gt;
Важно отметить, что при преобразовании числа нет потери информации, если выполнено условие &amp;lt;math&amp;gt;A &amp;lt; p_1 \cdot p_2 \cdot \ldots \cdot p_n&amp;lt;/math&amp;gt;, поскольку всегда, зная &amp;lt;math&amp;gt;\left({\alpha}_1, {\alpha}_2, \ldots, {\alpha}_n \right)&amp;lt;/math&amp;gt; можно восстановить само число &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt;. Поэтому кортеж  можно рассматривать как один из способов представления целого числа &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt; – модулярное представление, или представление в системе остаточных классов (СОК).&lt;br /&gt;
&lt;br /&gt;
Для дальнейшего используем расширенный алгоритм Евклида или его аналог – алгоритм нахождения линейного представления наибольшего общего делителя целых чисел: если числа а и b одновременно не равны нулю, то существуют целые числа &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt;, такие, что &amp;lt;math&amp;gt;a \cdot b = a \cdot x + b \cdot y&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Действительно, пусть &amp;lt;math&amp;gt;d&amp;lt;/math&amp;gt; – наименьшее целое положительное число вида &amp;lt;math&amp;gt;a \cdot x + b \cdot y&amp;lt;/math&amp;gt;, например, &amp;lt;math&amp;gt;d = a \cdot x_0 + b \cdot y_0&amp;lt;/math&amp;gt;, где числа &amp;lt;math&amp;gt;x_0&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;y_0&amp;lt;/math&amp;gt; не обязательно определены однозначно. Существование числа &amp;lt;math&amp;gt;d&amp;lt;/math&amp;gt; следует только из принципа полной упорядоченности. Очевидно, что &amp;lt;math&amp;gt;d &amp;gt; 0&amp;lt;/math&amp;gt;. Остаётся показать, что &amp;lt;math&amp;gt;d = (a,b)&amp;lt;/math&amp;gt;. Для этого надо проверить выполнение двух условий: а) &amp;lt;math&amp;gt;d|a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;d|b&amp;lt;/math&amp;gt; б) если &amp;lt;math&amp;gt;c|a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;c|b&amp;lt;/math&amp;gt;&lt;br /&gt;
то &amp;lt;math&amp;gt;c|d&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
От противного: допустим, что свойство а) не выполняется, для определенности положим, что не выполнено &amp;lt;math&amp;gt;d|b&amp;lt;/math&amp;gt;. Тогда по теореме о делении с остатком &amp;lt;math&amp;gt;a = dq + r&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;0 \le r &amp;lt; |d|&amp;lt;/math&amp;gt;, и, следовательно, &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;r=b-dq = b-(ax_0+by_0)q = a(-qx_0)+b(1-qy_0)&amp;lt;/math&amp;gt;, &lt;br /&gt;
&lt;br /&gt;
что противоречит минимальности &amp;lt;math&amp;gt;d&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Выполнение свойства б) проверяется непосредственно: &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;c|a \Rightarrow \left(\exist q_1 \in Z\right)\left(a = q_1\, c\right)&amp;lt;/math&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;c|b \Rightarrow \left(\exist q_2 \in Z\right)\left(a = q_2\, c\right)&amp;lt;/math&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;d=ax_0 + by_0 \Rightarrow d = q_1 c x_0 + q_2 c y_0 \Rightarrow d = \left(q_1 x_0 + q_2 y_0\right) c|d &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Алгоритм Евклида для целых чисел'''&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; — целые числа, не равные одновременно нулю, и последовательность чисел&lt;br /&gt;
: &amp;lt;math&amp;gt; a &amp;gt; b &amp;gt; r_1 &amp;gt; r_2 &amp;gt; r_3 &amp;gt; r_4 &amp;gt; \cdots &amp;gt;r_n&amp;lt;/math&amp;gt;&lt;br /&gt;
определена тем, что каждое &amp;lt;math&amp;gt;r_k&amp;lt;/math&amp;gt; — это остаток от деления предпредыдущего числа на предыдущее, а предпоследнее делится на последнее нацело, то есть&lt;br /&gt;
: &amp;lt;math&amp;gt;a = bq_0 + r_1&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;b = r_1q_1 + r_2&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;r_1 = r_2q_2 + r_3&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;\cdots&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;r_{k-2} = r_{k-1} q_{k-1} + r_k&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;\cdots&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;r_{n-2} = r_{n-1}q_{n-1}+ r_n&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;r_{n-1} = r_n q_n&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Тогда '''НОД''' &amp;lt;math&amp;gt;(a,b)&amp;lt;/math&amp;gt;, наибольший общий делитель &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt;, равен&lt;br /&gt;
&amp;lt;math&amp;gt;r_n&amp;lt;/math&amp;gt;, последнему ненулевому члену этой последовательности.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Существование''' таких &amp;lt;math&amp;gt;r_1, r_2, ...&amp;lt;/math&amp;gt;, то есть возможность деления с остатком &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; на &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; для любого целого &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и целого &amp;lt;math&amp;gt;b\ne 0&amp;lt;/math&amp;gt;, доказывается индукцией.&lt;br /&gt;
&lt;br /&gt;
'''Корректность''' этого алгоритма вытекает из следующих двух утверждений:&lt;br /&gt;
&lt;br /&gt;
* Пусть &amp;lt;math&amp;gt;a = bq + r&amp;lt;/math&amp;gt;, тогда '''НОД''' &amp;lt;math&amp;gt;(a,b)&amp;lt;/math&amp;gt; = '''НОД''' &amp;lt;math&amp;gt;(b,r)&amp;lt;/math&amp;gt;.&lt;br /&gt;
* '''НОД''' &amp;lt;math&amp;gt;(0,r)&amp;lt;/math&amp;gt; = &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt; для любого ненулевого &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt; (так как 0 делится на любое целое число, кроме нуля).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Расширенный алгоритм Евклида для целых чисел'''&lt;br /&gt;
&lt;br /&gt;
Рассмотрим расширенный алгоритм Евклида для нахождения линейного представления наибольшего общего делителя &amp;lt;math&amp;gt;(a,b) = ax + by &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Значения &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt; вычисляются в серии шагов, в каждом из которых мы выражаем &amp;lt;math&amp;gt;a_i&amp;lt;/math&amp;gt; (вычисленное в процессе работы алгоритма Евклида) в форме &amp;lt;math&amp;gt;a x_i + b y_i &amp;lt;/math&amp;gt;. А именно, рассмотрим последовательность&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;a_0 = a&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;a_0 = a x_0 + b y_0&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;a_1 = b&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;a_1 = a x_1 + b y_1&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;a_2 = a_0 - a_1 q_1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;a_2 = a x_2 + b y_2&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;a_3 = a_1 - a_2 q_2&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;a_3 = a x_3 + b y_3&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;\cdots&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;a_i = a_{i-2} - a_{i-1} q_{i-1}&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;a_i = a x_i + b y_i&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;\cdots&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;a_k = a_{k-2} - a_{k-1} q_{k-1}&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;a_k = a x_k + b y_k&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;0 = a_{k-1} - a_k q_k&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;0 = a x_{k+1} + b y_{k+1}&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В левом столбце алгоритма записана последовательность делений, которая получается в результате работы алгоритма Евклида и которая разрешена относительно остатков. Согласно теореме Ламе (1844 г.) число делений, которое необходимо выполнить для нахождения &amp;lt;math&amp;gt;(a,b)&amp;lt;/math&amp;gt;, не превосходит числа цифр в меньшем из чисел &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt;, умноженного на 5 (оценка наихудшего случая для алгоритма Евклида). Теорема Ламе доказывается на основе последовательности Фибоначчи.&lt;br /&gt;
&lt;br /&gt;
В правом столбце алгоритма каждый остаток выражен через &amp;lt;math&amp;gt;a x_i + b y_i&amp;lt;/math&amp;gt;. Надо вычислить &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;y_i&amp;lt;/math&amp;gt;. Очевидно, что &amp;lt;math&amp;gt;x_0 = 1, y_0 = 0&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;x_1 = 0, y_1 = 1&amp;lt;/math&amp;gt;. Сравнивая обе части на ''i''-м шаге, получим &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;a_i = a x_i + b y_i = a_{i-2} - a_{i-1} q_{i-1} = \left(a x_{i-2} + b y_{i-2} \right) - \left(a x_{i-1} + b y_{i-1} \right) q_{i-1} =&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \left(a x_{i-2} - x_{i-1} q_{i-1} \right) + \left(b y_{i-2} - y_{i-1} q_{i-1} \right)&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
откуда получается следующая индуктивная процедура вычисления &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;y_i&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;q_{i-1} = \left \lfloor \frac{a_{i-2}}{a_{i-1}} \right \rfloor&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;a_i = a_{i-2} - a_{i-1} q_{i-1}&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;x_i = x_{i-2} - x_{i-1} q_{i-1}&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;y_i = y_{i-2} - y_{i-1} q_{i-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Пример (Расширенный алгоритм Евклида)'''. &lt;br /&gt;
&lt;br /&gt;
Применим расширенный алгоритм Евклида к числам &amp;lt;math&amp;gt;a = 342, b = 612&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Весь алгоритм представим в виде следующей таблицы.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \begin{array}{|c|r|r|r|r|r|r|r|} \hline Iteration &amp;amp; q &amp;amp; A_0 &amp;amp; a_1 &amp;amp; x_0 &amp;amp; x_1 &amp;amp; Y_0 &amp;amp; y_1 &lt;br /&gt;
\\ \hline 0 &amp;amp; - &amp;amp; 342 &amp;amp; 612 &amp;amp;  1 &amp;amp;   0 &amp;amp;  0 &amp;amp;  1&lt;br /&gt;
\\ \hline 1 &amp;amp; 0 &amp;amp; 612 &amp;amp; 342 &amp;amp;  0 &amp;amp;   1 &amp;amp;  1 &amp;amp;  0&lt;br /&gt;
\\ \hline 2 &amp;amp; 1 &amp;amp; 342 &amp;amp; 270 &amp;amp;  1 &amp;amp;  -1 &amp;amp;  0 &amp;amp;  1&lt;br /&gt;
\\ \hline 3 &amp;amp; 1 &amp;amp; 270 &amp;amp;  72 &amp;amp; -1 &amp;amp;   2 &amp;amp;  1 &amp;amp; -1&lt;br /&gt;
\\ \hline 4 &amp;amp; 3 &amp;amp;  72 &amp;amp;  54 &amp;amp;  2 &amp;amp;  -7 &amp;amp; -1 &amp;amp;  4&lt;br /&gt;
\\ \hline 5 &amp;amp; 1 &amp;amp;  54 &amp;amp;  18 &amp;amp; -7 &amp;amp;   9 &amp;amp;  4 &amp;amp; -5&lt;br /&gt;
\\ \hline 6 &amp;amp; 3 &amp;amp;  18 &amp;amp;   0 &amp;amp;  9 &amp;amp; -34 &amp;amp; -5 &amp;amp; 19&lt;br /&gt;
&lt;br /&gt;
\\ \hline \end{array} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Заметим, что равенство &amp;lt;math&amp;gt;a_0 = a x_0 + b y_0&amp;lt;/math&amp;gt; выполняется на каждом шаге итерации. Алгоритм выдаёт &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;d = 18, x = 9, y = -5&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
и тогда &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;18=342 \cdot 9 + 612 \cdot (-5)&amp;lt;/math&amp;gt;.&lt;/div&gt;</summary>
		<author><name>Isaeva</name></author>	</entry>

	<entry>
		<id>https://vscripts.ru/w/%D0%A1%D1%80%D0%B0%D0%B2%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B8_%D0%B8%D1%85_%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D1%8B%D0%B5_%D1%81%D0%B2%D0%BE%D0%B9%D1%81%D1%82%D0%B2%D0%B0</id>
		<title>Сравнения и их основные свойства</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%A1%D1%80%D0%B0%D0%B2%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B8_%D0%B8%D1%85_%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D1%8B%D0%B5_%D1%81%D0%B2%D0%BE%D0%B9%D1%81%D1%82%D0%B2%D0%B0"/>
				<updated>2015-06-24T12:59:58Z</updated>
		
		<summary type="html">&lt;p&gt;Isaeva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Возьмём произвольное фиксированное натуральное число &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; и будем рассматривать остатки при делении на &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; различных целых чисел.&lt;br /&gt;
&lt;br /&gt;
При рассмотрении свойств этих остатков и проведении операций над ними удобно ввести понятие сравнения по модулю.&lt;br /&gt;
&lt;br /&gt;
== Определения ==&lt;br /&gt;
&lt;br /&gt;
'''Определение.''' Два целых числа &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; называются ''сравнимыми по модулю'' &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;, если их разность &amp;lt;math&amp;gt;a-b&amp;lt;/math&amp;gt; делится без остатка на &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Символически сравнимость записывается в виде формулы (''сравнения''):&lt;br /&gt;
: &amp;lt;math&amp;gt;a \equiv b \pmod{m}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Число &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; называется '''модулем''' сравнения.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Если разность &amp;lt;math&amp;gt;a-b&amp;lt;/math&amp;gt; не делится на &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;, то запишем:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;a \not \equiv b \pmod{m}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Согласно определению, &amp;lt;math&amp;gt; a \equiv 0 \pmod{m} &amp;lt;/math&amp;gt; означает, что &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; делится на &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Теорема.''' &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;  сравнимо с &amp;lt;math&amp;gt; b &amp;lt;/math&amp;gt; тогда и только тогда, когда &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt; b &amp;lt;/math&amp;gt;  имеют одинаковые остатки при делении на &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt;.&lt;br /&gt;
Поэтому в качестве определения сравнения можно взять следующую эквивалентную формулировку:&lt;br /&gt;
&lt;br /&gt;
'''Определение.''' Целые числа &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; называются ''сравнимыми по модулю'' &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;, если остатки от деления этих чисел на &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; равны.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Примеры ==&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;101 \equiv 17 \pmod{21}&amp;lt;/math&amp;gt; , т. к. 101 – 17 = 84, а 84 делится без остатка на 21.&lt;br /&gt;
: &amp;lt;math&amp;gt;135 \equiv 11 \pmod{4}&amp;lt;/math&amp;gt; , т. к. оба числа 135 и 11 при делении на 4 дают остаток 3.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Свойства ==&lt;br /&gt;
&lt;br /&gt;
Для фиксированного натурального числа &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; отношение сравнимости по модулю &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; обладает следующими свойствами:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''Рефлексивность:''' для любого целого &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; справедливо &amp;lt;math&amp;gt; a \equiv a \pmod m &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''Симметричность:''' если &amp;lt;math&amp;gt; a \equiv b \pmod m &amp;lt;/math&amp;gt;, то &amp;lt;math&amp;gt; b \equiv a \pmod m &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''Транзитивность:''' если &amp;lt;math&amp;gt; a \equiv b \pmod m &amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt; b \equiv c \pmod m &amp;lt;/math&amp;gt;, то &amp;lt;math&amp;gt; a \equiv c \pmod m &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Таким образом, отношение сравнимости по модулю &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; является отношением эквивалентности на множестве целых чисел.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:'''Другие свойства:'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Обе части сравнения можно умножить на произвольное целое число. &lt;br /&gt;
:Если &amp;lt;math&amp;gt;a \equiv b \pmod m&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; – произвольное целое число, то &amp;lt;math&amp;gt; k \cdot a \equiv k \cdot b \pmod m&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Обе части сравнения можно разделить на их общий делитель, если он взаимно прост с модулем. &lt;br /&gt;
:Если &amp;lt;math&amp;gt; k \cdot a \equiv k \cdot b \pmod m &amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt; (k, m) = 1 &amp;lt;/math&amp;gt;, то &amp;lt;math&amp;gt;a \equiv b \pmod m&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Обе части сравнения и модуль можно умножить на одно и то же целое. &lt;br /&gt;
:Если &amp;lt;math&amp;gt;a \equiv b \pmod m&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; – произвольное натуральное число, то &amp;lt;math&amp;gt; k \cdot a \equiv k \cdot b \pmod {k \cdot m}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Обе части сравнения и модуль можно разделить на любой их общий делитель. &lt;br /&gt;
:Если &amp;lt;math&amp;gt; k \cdot a \equiv k \cdot b \pmod {k \cdot m}&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; – произвольные натуральные числа, то &amp;lt;math&amp;gt;a \equiv b \pmod m&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* К любой части сравнения можно прибавить (или отнять от нее) любое число, кратное модуля. &lt;br /&gt;
:Если &amp;lt;math&amp;gt;a \equiv b \pmod m&amp;lt;/math&amp;gt; то при любом целом &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; &amp;lt;math&amp;gt;a+n\cdot m \equiv b \pmod m&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Сравнения можно почленно складывать и вычитать. &lt;br /&gt;
&lt;br /&gt;
:Если &amp;lt;math&amp;gt;a \equiv b \pmod m&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;c \equiv d \pmod m&amp;lt;/math&amp;gt;, то &amp;lt;math&amp;gt;a+c \equiv b+d \pmod m&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;a-c \equiv b-d \pmod m&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Любое слагаемое левой или правой части сравнения можно перенести с противоположным знаком в другую часть.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Сравнения можно почленно перемножать. &lt;br /&gt;
:Если &amp;lt;math&amp;gt;a \equiv b \pmod m&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;c \equiv d \pmod m&amp;lt;/math&amp;gt;, то &amp;lt;math&amp;gt;a \cdot c \equiv b \cdot d \pmod m&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Если &amp;lt;math&amp;gt;a \equiv b \pmod m&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;f(x) = c_0 + c_1 \cdot x_1 + \ldots + c_n \cdot x_n&amp;lt;/math&amp;gt; - произвольный многочлен с целыми коэффициентами, то &amp;lt;math&amp;gt;f(a) = f(b) \pmod m&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Если сравнение выполняется по модулю &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;, то оно выполняется и по модулю &amp;lt;math&amp;gt;d&amp;lt;/math&amp;gt;, равному любому делителю числа &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;. &lt;br /&gt;
:Если &amp;lt;math&amp;gt;a \equiv b \pmod m&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;d|m&amp;lt;/math&amp;gt;, то &amp;lt;math&amp;gt;a \equiv b \pmod d&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Если &amp;lt;math&amp;gt;a \equiv b \pmod m&amp;lt;/math&amp;gt;, то множество общих делителей &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; совпадает с множеством общих делителей &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;. В частности, &amp;lt;math&amp;gt;(a,m) = (b,m)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Если сравнение &amp;lt;math&amp;gt;a \equiv b&amp;lt;/math&amp;gt; имеет место по нескольким модулям, то оно имеет место и по модулю, равному наименьшему общему кратному этих модулей. &lt;br /&gt;
:Если &amp;lt;math&amp;gt;a \equiv b \pmod m_1, a \equiv b \pmod m_2, \ldots, a \equiv b \pmod m_s&amp;lt;/math&amp;gt;, то &amp;lt;math&amp;gt;a \equiv b \pmod m&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;m = [m_1, m_2, \ldots, m_s]&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Если одна часть сравнения и модуль делятся на какое-либо число, то и другая часть сравнения делится на это число.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Классы вычетов ==&lt;br /&gt;
&lt;br /&gt;
При делении целых чисел на модуль &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; в остатке получатся числа &amp;lt;math&amp;gt;0, 1, 2, 3,\ldots, {m-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Отнесём все целые числа, дающие при делении на &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; один и тот же остаток в один класс, поэтому получится &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; различных классов по модулю &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;. В один класс попадут равноостаточные числа, они называются вычетами друг друга. &lt;br /&gt;
&lt;br /&gt;
'''Определение.''' Множество всех чисел сравнимых с &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; по модулю &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; называется '''классом вычетов''' &amp;lt;math&amp;gt;a &amp;lt;/math&amp;gt; по модулю &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Обозначим через &amp;lt;math&amp;gt;A_0&amp;lt;/math&amp;gt; класс вычетов, которые при делении на &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; дают остаток &amp;lt;math&amp;gt;0&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Например, числа вида &amp;lt;math&amp;gt;mt, t \in Z&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Через &amp;lt;math&amp;gt;A_1&amp;lt;/math&amp;gt; – числа, дающие при делении остаток &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Например, числа вида &amp;lt;math&amp;gt;mt+1, t \in Z&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Через &amp;lt;math&amp;gt;A_2&amp;lt;/math&amp;gt; – числа, дающие при делении остаток &amp;lt;math&amp;gt;2&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Например, числа вида &amp;lt;math&amp;gt;mt+2, t \in Z&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Через &amp;lt;math&amp;gt;A_{m-1}&amp;lt;/math&amp;gt; – числа, дающие при делении остаток &amp;lt;math&amp;gt;m-1&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Например, числа вида &amp;lt;math&amp;gt;mt+(m-1), t \in Z&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Определение.''' Полной системой вычетов по модулю &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; называется совокупность &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; целых чисел, содержащая точно по одному представителю из каждого класса вычетов по модулю &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Каждый класс вычетов по модулю &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; содержит в точности одно из чисел совокупности всех возможных остатков от деления на &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;: &amp;lt;math&amp;gt;0, 1, \ldots, m-1&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Можно доказать, что любая совокупность &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; чисел &amp;lt;math&amp;gt;m&amp;gt;1&amp;lt;/math&amp;gt;, попарно несравнимых по модулю &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;, есть полная система вычетов по модулю &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Часто рассматривают полную систему наименьших неотрицательных вычетов по модулю &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;: &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;0, 1, \ldots, m-1&amp;lt;/math&amp;gt;; &lt;br /&gt;
&lt;br /&gt;
полную систему наименьших положительных вычетов: &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;1, 2, \ldots, m&amp;lt;/math&amp;gt;; &lt;br /&gt;
&lt;br /&gt;
полную систему наименьших по абсолютной величине вычетов: &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;{-\frac{m}{2}+1}, {-\frac{m}{2}+2}, \ldots, -2, -1, 0, 1, 2, \ldots, {\frac{m}{2}}&amp;lt;/math&amp;gt; при чётном &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;-\left[{\frac{m}{2}}\right], {-\left[{\frac{m}{2}}\right]+1}, \ldots, -2, -1, 0, 1, 2, \ldots, \left[{\frac{m}{2}}\right]&amp;lt;/math&amp;gt; при нечётном &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Определение.''' Приведенной системой вычетов по модулю m называется совокупность всех вычетов из полной системы, взаимно простых с модулем &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Иначе говоря, приведённая система вычетов по модулю &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; - это система чисел, взаимно простых с модулем, взятых по одному и только по одному из каждого класса вычетов по модулю &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;. Приведенную систему обычно выбирают из системы наименьших неотрицательных вычетов. Число классов, взаимно простых с модулем &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;, равно значению функции Эйлера &amp;lt;math&amp;gt;\varphi(m)&amp;lt;/math&amp;gt;.&lt;/div&gt;</summary>
		<author><name>Isaeva</name></author>	</entry>

	<entry>
		<id>https://vscripts.ru/w/%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BE%D1%81%D1%82%D0%B0%D1%82%D0%BE%D1%87%D0%BD%D1%8B%D1%85_%D0%BA%D0%BB%D0%B0%D1%81%D1%81%D0%BE%D0%B2_-_%D0%B2%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5</id>
		<title>Система остаточных классов - введение</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BE%D1%81%D1%82%D0%B0%D1%82%D0%BE%D1%87%D0%BD%D1%8B%D1%85_%D0%BA%D0%BB%D0%B0%D1%81%D1%81%D0%BE%D0%B2_-_%D0%B2%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5"/>
				<updated>2015-06-24T12:55:40Z</updated>
		
		<summary type="html">&lt;p&gt;Isaeva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Теоретико-числовая база построения системы остаточных классов =&lt;br /&gt;
&lt;br /&gt;
Напомним определение деления с остатком.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Определение''' &lt;br /&gt;
&lt;br /&gt;
Говорят, что целое число &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; делится на натуральное число &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; с остатком, если имеется пара целых чисел &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;, таких, что &amp;lt;math&amp;gt;n = m \cdot q+r&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;0\le r&amp;lt;m&amp;lt;/math&amp;gt;. &lt;br /&gt;
&amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; называется делимым, &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; - делителем, &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; - неполным частным, &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt; - остатком.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Для целых чисел:&lt;br /&gt;
&lt;br /&gt;
'''Определение''' &lt;br /&gt;
&lt;br /&gt;
Говорят, что целое число &amp;lt;math&amp;gt;n \in Z&amp;lt;/math&amp;gt; делится на целое число &amp;lt;math&amp;gt;m \in Z&amp;lt;/math&amp;gt; с остатком, если имеется пара целых чисел &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;, таких, что &amp;lt;math&amp;gt;n = m \cdot q+r&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;0\le r&amp;lt;|m|&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Пример''': &lt;br /&gt;
&lt;br /&gt;
'''48''' при делении на '''5''' даёт остаток '''3''', т.к. &amp;lt;math&amp;gt;48=5\cdot 9+3&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;0\le 3&amp;lt;5&amp;lt;/math&amp;gt;, '''-48''' при делении на '''5''' даёт остаток '''2''', т.к. &amp;lt;math&amp;gt;-48=5\cdot (-10)+2&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;0\le 2&amp;lt;5&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Сравнения и их основные свойства ==&lt;br /&gt;
&lt;br /&gt;
Возьмём произвольное фиксированное натуральное число &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; и будем рассматривать остатки при делении на &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; различных целых чисел.&lt;br /&gt;
&lt;br /&gt;
При рассмотрении свойств этих остатков и проведении операций над ними удобно ввести понятие сравнения по модулю.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Определение''' &lt;br /&gt;
&lt;br /&gt;
Два целых числа &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt; b &amp;lt;/math&amp;gt; называются '''сравнимыми по модулю &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt;''', если их разность &amp;lt;math&amp;gt; a-b &amp;lt;/math&amp;gt; делится без остатка на &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Символически сравнимость записывается в виде формулы ('''сравнения'''):&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;a \equiv b \pmod{m}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Число &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; называется '''модулем''' сравнения.&lt;br /&gt;
&lt;br /&gt;
Эквивалентная формулировка:&lt;br /&gt;
&lt;br /&gt;
'''Определение''' &lt;br /&gt;
&lt;br /&gt;
Целые числа &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt; b &amp;lt;/math&amp;gt; называются '''сравнимыми по модулю &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt;''', если остатки от деления этих чисел на &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; равны.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Отношение сравнимости по модулю &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; обладает свойствами рефлексивности, симметричности и транзитивности, т.е. является отношением эквивалентности.&lt;br /&gt;
&lt;br /&gt;
Отнесём все целые числа, дающие при делении на &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; один и тот же остаток в один класс, поэтому получится &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; различных классов по модулю &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt;.&lt;br /&gt;
Множество всех чисел сравнимых с &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; по модулю &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; называется классом вычетов &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; по модулю &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Подробнее о свойствах сравнений и классах вычетов смотри [[Сравнения и их основные свойства| Сравнения и их основные свойства]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Теорема о делении с остатком. Алгоритм Евклида ==&lt;br /&gt;
&lt;br /&gt;
'''Теорема о делении с остатком'''&lt;br /&gt;
&lt;br /&gt;
Для любых целых &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;b \not= 0&amp;lt;/math&amp;gt;, существует единственный набор целых чисел &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;, что &amp;lt;math&amp;gt;a = bq + r&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;0 \le r &amp;lt; |b|&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;|b|&amp;lt;/math&amp;gt; — модуль числа &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
На этой операции основан алгоритм Евклида нахождения наибольшего общего делителя двух целых чисел.&lt;br /&gt;
&lt;br /&gt;
'''Алгоритм Евклида для целых чисел'''&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; — целые числа, не равные одновременно нулю, и последовательность чисел&lt;br /&gt;
: &amp;lt;math&amp;gt; a &amp;gt; b &amp;gt; r_1 &amp;gt; r_2 &amp;gt; r_3 &amp;gt; r_4 &amp;gt; \cdots &amp;gt;r_n&amp;lt;/math&amp;gt;&lt;br /&gt;
определена тем, что каждое &amp;lt;math&amp;gt;r_k&amp;lt;/math&amp;gt; — это остаток от деления предпредыдущего числа на предыдущее, а предпоследнее делится на последнее нацело, то есть&lt;br /&gt;
: &amp;lt;math&amp;gt;a = bq_0 + r_1&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;b = r_1q_1 + r_2&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;r_1 = r_2q_2 + r_3&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;\cdots&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;r_{k-2} = r_{k-1} q_{k-1} + r_k&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;\cdots&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;r_{n-2} = r_{n-1}q_{n-1}+ r_n&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;r_{n-1} = r_n q_n&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Тогда '''НОД''' &amp;lt;math&amp;gt;(a,b)&amp;lt;/math&amp;gt;, наибольший общий делитель &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt;, равен&lt;br /&gt;
&amp;lt;math&amp;gt;r_n&amp;lt;/math&amp;gt;, последнему ненулевому члену этой последовательности.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Существование''' таких &amp;lt;math&amp;gt;r_1, r_2, ...&amp;lt;/math&amp;gt;, то есть возможность деления с остатком &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; на &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; для любого целого &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и целого &amp;lt;math&amp;gt;b\ne 0&amp;lt;/math&amp;gt;, доказывается индукцией.&lt;br /&gt;
&lt;br /&gt;
'''Корректность''' этого алгоритма вытекает из следующих двух утверждений:&lt;br /&gt;
&lt;br /&gt;
* Пусть &amp;lt;math&amp;gt;a = bq + r&amp;lt;/math&amp;gt;, тогда '''НОД''' &amp;lt;math&amp;gt;(a,b)&amp;lt;/math&amp;gt; = '''НОД''' &amp;lt;math&amp;gt;(b,r)&amp;lt;/math&amp;gt;.&lt;br /&gt;
* '''НОД''' &amp;lt;math&amp;gt;(0,r)&amp;lt;/math&amp;gt; = &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt; для любого ненулевого &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt; (так как 0 делится на любое целое число, кроме нуля).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Смотри [[Теорема о делении с остатком. Алгоритм Евклида|Теорема о делении с остатком. Алгоритм Евклида]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Китайская теорема об остатках ==&lt;br /&gt;
&lt;br /&gt;
Фундаментальным положением, лежащим в основе модулярного представления чисел, является китайская теорема об остатках (Chinese Remainder Theorem - CRT). &lt;br /&gt;
Например, эта теорема гарантирует, что при правильном выборе модулей СОК  &lt;br /&gt;
каждое число из динамического диапазона имеет в СОК единственное представление, &lt;br /&gt;
и по этому представлению можно определить представленное число.&lt;br /&gt;
В своей первоначальной формулировке эта теорема была доказана китайским математиком Сунь-Цзы приблизительно в 100 г. н.э.&lt;br /&gt;
В современной формулировке теорема звучит так:&lt;br /&gt;
&lt;br /&gt;
'''Теорема'''&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;p_1, p_2, \ldots, p_k&amp;lt;/math&amp;gt; - попарно взаимно простые числа, большие 1, и пусть &amp;lt;math&amp;gt;p = p_1 \cdot p_2 \cdot \ldots  \cdot p_k&amp;lt;/math&amp;gt;. Тогда существует единственное неотрицательное решение по модулю &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; следующей системы сравнений:&lt;br /&gt;
: &amp;lt;math&amp;gt;x \equiv a_1 \pmod{p_1}&amp;lt;/math&amp;gt;,&lt;br /&gt;
: &amp;lt;math&amp;gt;x \equiv a_2 \pmod{p_2}&amp;lt;/math&amp;gt;,&lt;br /&gt;
: &amp;lt;math&amp;gt;\ldots&amp;lt;/math&amp;gt;,&lt;br /&gt;
: &amp;lt;math&amp;gt;x \equiv a_k \pmod{p_k}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Другими словами, отображение, которое каждому целому числу &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;0\le x &amp;lt;p&amp;lt;/math&amp;gt;, ставит в соответствие кортеж &amp;lt;math&amp;gt;a_1, a_2,\ldots, a_k&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;x \equiv a_i \pmod{p_i}, i = 1, \ldots k&amp;lt;/math&amp;gt; является биекцией кольца &amp;lt;math&amp;gt;Z_P&amp;lt;/math&amp;gt; на декартово произведение &amp;lt;math&amp;gt;Z_{p_1} \times Z_{p_2} \times \ldots \times Z_{p_k}&amp;lt;/math&amp;gt;  колец &amp;lt;math&amp;gt;Z_{p_1}, Z_{p_2}, \ldots, Z_{p_k}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Подробности и доказательство теоремы смотри [[Китайская теорема об остатках| Китайская теорема об остатках]].&lt;br /&gt;
&lt;br /&gt;
Смотри также [[Описание КТО II|Китайская теорема об остатках(КТО II)]], [[Описание КТО III|Китайская теорема об остатках (КТО III)]].&lt;br /&gt;
&lt;br /&gt;
== Теоремы Эйлера и Ферма, их роль в вычислении мультипликативных обратных элементов по заданному модулю ==&lt;br /&gt;
&lt;br /&gt;
'''Определение'''&lt;br /&gt;
&lt;br /&gt;
Функция Эйлера &amp;lt;math&amp;gt;\varphi(n)&amp;lt;/math&amp;gt; — это количество чисел от &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; до &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt;, взаимно простых с &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Т.е. это количество таких натуральных чисел из отрезка [1; n], наибольший общий делитель (НОД) которых с &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; равен единице.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Tеоремa Эйлера'''&lt;br /&gt;
&lt;br /&gt;
Если &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; взаимно просты, то &amp;lt;math&amp;gt;a^{\varphi(p)} \equiv 1 \pmod p&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;\varphi(n)&amp;lt;/math&amp;gt; - функция Эйлера.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Частным случаем теоремы Эйлера является малая теорема Ферма.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Малая теорема Ферма'''&lt;br /&gt;
&lt;br /&gt;
Если &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; - простое число и &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; - произвольное целое число, не делящееся на &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;, то &amp;lt;math&amp;gt;a^{p-1} \equiv 1 \pmod p &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Смотри [[Функция Эйлера|Функция Эйлера]], [[Вычисление мультипликативных обратных элементов по заданному модулю|Вычисление мультипликативных обратных элементов по заданному модулю]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Числа Мерсенна, Ферма и операции над ними ==&lt;br /&gt;
&lt;br /&gt;
При рассмотрении отдельных классов простых чисел интерес представляет вопрос о простых числах специального вида, например, таких как числа Мерсенна или числа Ферма.&lt;br /&gt;
&lt;br /&gt;
'''Определение'''&lt;br /&gt;
&lt;br /&gt;
'''Числа Мерсенна''' — числа вида &amp;lt;math&amp;gt;M_n = 2^n - 1&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; — натуральное число.&lt;br /&gt;
Названы в честь французского математика Марена Мерсенна.&lt;br /&gt;
&lt;br /&gt;
Иногда числами Мерсенна называют только числа &amp;lt;math&amp;gt;M_n&amp;lt;/math&amp;gt; с нечетными или простыми индексами ''n''. &lt;br /&gt;
&lt;br /&gt;
Множества простых чисел в этих последовательностях совпадают, а потому понятие ''простого числа Мерсенна'' не зависит от того, как именно определяются числа Мерсенна.&lt;br /&gt;
&lt;br /&gt;
При простых значениях n = p число   может оказаться простым, но может быть составным.&lt;br /&gt;
Например, при &amp;lt;math&amp;gt;p = 2, 3, 5, 7, 13, 17, 19&amp;lt;/math&amp;gt; мы получаем простые числа Мерсенна: &amp;lt;math&amp;gt;3, 7, 31, 127, 8191, 131071&amp;lt;/math&amp;gt;, а при &amp;lt;math&amp;gt;p = 11, 23, 29&amp;lt;/math&amp;gt; числа &amp;lt;math&amp;gt;2^p - 1&amp;lt;/math&amp;gt; - составные. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Определение'''&lt;br /&gt;
&lt;br /&gt;
'''Числа Ферма''' — числа вида &amp;lt;math&amp;gt;F_n=2^{2^n}+1&amp;lt;/math&amp;gt;, где ''n'' — неотрицательное целое число. &lt;br /&gt;
&lt;br /&gt;
При &amp;lt;math&amp;gt;n = 0, 1, 2, 3, 4&amp;lt;/math&amp;gt; числа Ферма простые: &amp;lt;math&amp;gt;3, 5, 17, 257, 65537&amp;lt;/math&amp;gt;. Известно, что для &amp;lt;math&amp;gt;5\le n \le 32&amp;lt;/math&amp;gt; числа &amp;lt;math&amp;gt;F_n&amp;lt;/math&amp;gt; являются составными. На 2014 г. не найдено ни одного простого числа такого вида для &amp;lt;math&amp;gt;n&amp;gt;4&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Все числа Мерсенна и Ферма – взаимно простые. Кроме того, для модулей СОК вида &amp;lt;math&amp;gt;M_n = 2^n - 1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;M_n = 2^n + 1&amp;lt;/math&amp;gt; легко реализуется преобразование и арифметические операции. Поэтому эффективно выбирать модули СОК в виде чисел Мерсенна и Ферма. &lt;br /&gt;
&lt;br /&gt;
Смотри [[Числа Мерсенна и Ферма|Числа Мерсенна и Ферма]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Математические модели модулярного представления и параллельной обработки информации =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Определение системы остаточных классов==&lt;br /&gt;
&lt;br /&gt;
Представление чисел в виде набора остатков от деления на выбранные натуральные модули - основания системы называется системой остаточных классов - СОК (residue number system - RNS) или модулярной системой счисления - МСС (modular system).&lt;br /&gt;
&lt;br /&gt;
Смотри [[Система остаточных классов|Система остаточных классов]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Выбор СОК как системы счисления ==&lt;br /&gt;
&lt;br /&gt;
Под системой счисления понимают совокупность символический метод записи чисел, представление чисел с помощью письменных знаков, или, точнее, способ кодирования (представления) элементов некоторой конечной модели действительных чисел словами одного или более алфавитов. &lt;br /&gt;
&lt;br /&gt;
К любой кодовой системе применимы следующие требования:&lt;br /&gt;
&lt;br /&gt;
* возможность представления в данной системе любой величины в рассматриваемом, заранее назначенном диапазоне;&lt;br /&gt;
* единственность представления – любая кодовая комбинация соответствует одному и только одному числу в заданном диапазоне;&lt;br /&gt;
* простота оперирования числами в данной системе счисления.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Системы счисления подразделяются на позиционные, непозиционные и смешанные. ([https://ru.wikipedia.org/wiki/%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D1%81%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F#.D0.9D.D0.B5.D0.BF.D0.BE.D0.B7.D0.B8.D1.86.D0.B8.D0.BE.D0.BD.D0.BD.D1.8B.D0.B5_.D1.81.D0.B8.D1.81.D1.82.D0.B5.D0.BC.D1.8B_.D1.81.D1.87.D0.B8.D1.81.D0.BB.D0.B5.D0.BD.D0.B8.D1.8F Система счисления])&lt;br /&gt;
&lt;br /&gt;
В позиционных системах счисления один и тот же числовой знак (цифра) в записи числа имеет различные значения в зависимости от того места (разряда), где он расположен.  Обычно используется b-ричная система счисления, которая определяется целым числом b&amp;gt;1, называемым основанием системы счисления.  &lt;br /&gt;
&lt;br /&gt;
Смешанная система счисления является обобщением b-ричной системы счисления и также зачастую относится к позиционным системам счисления. Смотри [[Полиадический код|Полиадический код]].&lt;br /&gt;
&lt;br /&gt;
В непозиционных системах счисления величина, которую обозначает цифра, не зависит от её положения в числе. При этом система может накладывать ограничения на положение цифр.&lt;br /&gt;
&lt;br /&gt;
Всякая вычислительная структура тесно связана с системой счисления, в которой она работает. &lt;br /&gt;
&lt;br /&gt;
В обычной позиционной системе счисления (ПСС) значение разряда любого числа, кроме младшего, являющегося результатом двухместной арифметической операции, зависит не только от значения одноимённых операндов, но и от всех младших разрядов, т. е. ПСС обладает строго последовательной структурой. &lt;br /&gt;
Напротив, непозиционные коды с параллельной структурой позволяют реализовать распараллеливание операций на уровне выполнения элементарных арифметических действий. &lt;br /&gt;
&lt;br /&gt;
В качестве такой непозиционной системы удобна система остаточных классов (СОК). &lt;br /&gt;
&lt;br /&gt;
Базовые арифметические операции в СОК делятся на две группы: модульные и немодульные.&lt;br /&gt;
&lt;br /&gt;
* Модульные операции, которые могут быть выполнены параллельно и независимо над отдельными цифрами чисел: сложение, умножение, вычитание без знака.&lt;br /&gt;
&lt;br /&gt;
* Немодульные операции, которые требуют знания величины модулярных чисел в целом: сравнение, вычитание с получением отрицательного результата, контроль переполнения модулярного числа.&lt;br /&gt;
&lt;br /&gt;
Основным достоинством системы остаточных классов является сравнительная простота выполнения модульных операций, недостатком - большая трудоемкость немодульных операций.&lt;br /&gt;
&lt;br /&gt;
Смотри [[Представление числа в системе остаточных классов|Представление числа в системе остаточных классов]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Модульные операции над числами в системе остаточных классов ==&lt;br /&gt;
&lt;br /&gt;
Возможность применения СОК в вычислительных алгоритмах обусловлено наличием определённого изоморфизма между математическими операциями над целыми числами и соответствующими операциями над системой целых неотрицательных остатков по отдельным модулям. Сложение, умножение, возведение в целую положительную степень любых целых положительных чисел идентичны соответствующим операциям, выполняемым над системой остатков. &lt;br /&gt;
&lt;br /&gt;
Смотри [[Модульные операции|Модульные операции]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Основные методы и алгоритмы перехода от позиционного представления к остаткам ==&lt;br /&gt;
&lt;br /&gt;
Обычно исходные данные для вычислений представлены в каком-либо традиционном представлении, двоичном или десятичном. В таком же виде ожидаются результаты вычислений. Отсюда понятна необходимость перевода чисел из позиционного представления в представление СОК (прямое преобразование) и обратно (обратное преобразование). Одной из первых немодульных процедур является прямое преобразование позиционных кодов в код СОК.&lt;br /&gt;
&lt;br /&gt;
Перевод числа в систему остаточных классов можно осуществить непосредственно методом деления, с модулями СОК в качестве делителей. Однако из-за сложности операции деления техническая реализация такого метода неэффективна.&lt;br /&gt;
Поэтому рассматриваются другие методы.&lt;br /&gt;
Например, часто используется метод перевода числа из позиционной системы счисления в СОК, не содержащий операции деления, называемый методом непосредственного суммирования модульных значений разрядов позиционного числа.&lt;br /&gt;
&lt;br /&gt;
Смотри [[Алгоритмы перехода от позиционного представления к остаткам|Алгоритмы перехода от позиционного представления к остаткам]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Восстановление позиционного представления числа по его остаткам ==&lt;br /&gt;
&lt;br /&gt;
Система остаточных классов обладает одной особенностью, которую можно отнести к недостаткам этой системы: нельзя визуально определить величину числа, представленного в СОК, а следовательно затруднительно и выполнение таких операций, как сравнение чисел, определение знака числа. Один из путей решения этой проблемы состоит в преобразовании чисел из СОК в позиционную систему счисления. Оценим существующие способы перевода, как традиционные: метод ортогональных базисов; перевод числа в обобщенную позиционную систему (ОПС), так и недавно появившиеся интервальные методы перевода.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Метод ортогональных базисов'''&lt;br /&gt;
&lt;br /&gt;
Метод восстановления числа по его остаткам был найден еще в Китае две тысячи лет назад. Основой этого метода является теорема, названная [[Китайская теорема об остатках| Китайской теоремой об остатках (КТО)]].&lt;br /&gt;
&lt;br /&gt;
Эта теорема лежит в основе метода ортогональных базисов при переводе из системы остаточных классов в позиционную систему счисления.&lt;br /&gt;
&lt;br /&gt;
Смотри [[Метод ортогональных базисов|Метод ортогональных базисов]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Перевод числа из СОК в обобщенную позиционную систему (ОПС)'''&lt;br /&gt;
&lt;br /&gt;
Еще один метод определения величины числа связан с переводом числа из системы остаточных классов в ОПС. Для того, чтобы рассмотреть этот метод, выявим связь между представлением некоторого числа в этих двух системах. &lt;br /&gt;
&lt;br /&gt;
Пусть по-прежнему СОК задается основаниями &amp;lt;math&amp;gt;p_1, p_2, \ldots, p_n&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;A = ({\alpha}_1, {\alpha}_2, \ldots, {\alpha}_n)&amp;lt;/math&amp;gt; - число в этой системе. И пусть &amp;lt;math&amp;gt;p_1, p_2, \ldots, p_n&amp;lt;/math&amp;gt; являются также основаниями ОПС, тогда число &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt; можно представить в виде&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;A = a_n\cdot p_1\cdot p_2\cdot \ldots \cdot p_{n-1} + a_{n-1}\cdot p_1\cdot p_2\cdot \ldots \cdot p_{n-2} + \ldots + a_3\cdot p_1\cdot p_2 + a_2\cdot p_1 + a_1&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
где &amp;lt;math&amp;gt;0\le a_k&amp;lt;p_1\cdot p_2\cdot \ldots \cdot p_{k-1}&amp;lt;/math&amp;gt; – коэффициенты (цифры) ОПС.&lt;br /&gt;
&lt;br /&gt;
Очевидно, что диапазоны чисел, представимых в СОК и ОПС совпадают, т.е. можно говорить о наличии взаимно однозначного соответствия между множеством представлений чисел в СОК и ОПС.&lt;br /&gt;
&lt;br /&gt;
Это равенство можно переписать в следующем виде:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;A = a_1 + p_1(a_2 + p_2(a_3 + \ldots +p_{n-2}(a_{n-1} + p_{n-1} a_n) \ldots ))&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
откуда следует, что цифры ОПС могут быть получены из соотношений:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;a_1 = A - \left[ \frac{A}{p_1}\right] \cdot p_1 = A - A_1\cdot p_1&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;A_1 = \left[ \frac{A}{p_1}\right]&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;a_2 = A_1 - \left[ \frac{A_1}{p_2}\right] \cdot p_2 = A_1 - A_2\cdot p_2&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;A_2 = \left[ \frac{A_1}{p_2}\right]&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\ldots&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;a_n = A_{n-1} - \left[ \frac{A_{n-1}}{p_n}\right] \cdot p_n = A_{n-1} - A_n\cdot p_n&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;A_n = \left[ \frac{A_{n-1}}{p_n}\right]&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Причем при определении цифр &amp;lt;math&amp;gt;a_i&amp;lt;/math&amp;gt; по этим формулам все вычисления можно вести в СОК.&lt;br /&gt;
&lt;br /&gt;
Смотри [[Перевод числа из СОК в обобщенную позиционную систему|Перевод числа из СОК в обобщенную позиционную систему]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Интервальные методы перевода'''&lt;br /&gt;
&lt;br /&gt;
Достаточно эффективными методами перевода чисел из СОК в ПСС являются интервальные методы, основанные на интервальных характеристиках чисел. Одна из таких характеристик – номер интервала.&lt;br /&gt;
&lt;br /&gt;
Смотри [[Интервальные методы перевода|Интервальные методы перевода]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Расширение диапазона представления чисел ==&lt;br /&gt;
&lt;br /&gt;
Расширение системы оснований является одной из основных немодульных операций в СОК. Выполнение этой операции бывает необходимо при выполнении операции деления чисел, при вычислении позиционных характеристик, при обнаружении переполнения при выполнении сложения или умножения чисел.&lt;br /&gt;
&lt;br /&gt;
Задачу расширения системы оснований можно сформулировать следующим образом: найти остаточное представление числа по новому основанию (новым основаниям), если известно представление числа по другим основаниям (остатки от деления на другие числа).&lt;br /&gt;
Один из путей расширения системы оснований состоит в переводе числа в позиционную систему счисления и вычисления остатка от деления на новый модуль. Этот путь не является рациональным с точки зрения числа операций.&lt;br /&gt;
&lt;br /&gt;
Другой метод расширения системы оснований позволяет определить цифру числа по новому основанию, базируясь на таких позиционных характеристиках числа, как ранг числа, след числа. &lt;br /&gt;
&lt;br /&gt;
Смотри [[Расширение диапазона представления чисел|Расширение диапазона представления чисел]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Литература =&lt;br /&gt;
&lt;br /&gt;
Бухштаб А. А. Теория чисел – М: Наука, 1975 г.&lt;br /&gt;
&lt;br /&gt;
Айерленд К. Классическое введение в современную теорию чисел. М: Мир, 1987. &lt;br /&gt;
&lt;br /&gt;
Акушинский И. Л., Юдицкий Д. И. Машинная арифметика в остаточных классах. – М. Советское радио, 1968.&lt;br /&gt;
&lt;br /&gt;
Амербаев В. М. Теоретические основы мащинной арифметики, - Алма –Ата: Наука, 1976.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Дополнительно'':&lt;br /&gt;
&lt;br /&gt;
Куликов Л.Я. Алгебра и теория чисел: Учеб. пособие для педагогических институтов. — М.: Высш. школа, 1979. — 559 с. http://allmath.ru/highermath/algebra/theorychisel-ugu &lt;br /&gt;
&lt;br /&gt;
Сизый С. В. Лекции по теории чисел. Учебное пособие для математических специальностей. Екатеринбург, Уральский государственный университет им. А.М.Горького, 1999. http://stu.sernam.ru/book_algebra.php&lt;/div&gt;</summary>
		<author><name>Isaeva</name></author>	</entry>

	<entry>
		<id>https://vscripts.ru/w/%D0%A1%D1%80%D0%B0%D0%B2%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B8_%D0%B8%D1%85_%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D1%8B%D0%B5_%D1%81%D0%B2%D0%BE%D0%B9%D1%81%D1%82%D0%B2%D0%B0</id>
		<title>Сравнения и их основные свойства</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%A1%D1%80%D0%B0%D0%B2%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B8_%D0%B8%D1%85_%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D1%8B%D0%B5_%D1%81%D0%B2%D0%BE%D0%B9%D1%81%D1%82%D0%B2%D0%B0"/>
				<updated>2015-06-24T12:32:31Z</updated>
		
		<summary type="html">&lt;p&gt;Isaeva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Возьмём произвольное фиксированное натуральное число &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; и будем рассматривать остатки при делении на &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; различных целых чисел.&lt;br /&gt;
&lt;br /&gt;
При рассмотрении свойств этих остатков и проведении операций над ними удобно ввести понятие сравнения по модулю.&lt;br /&gt;
&lt;br /&gt;
== Определения ==&lt;br /&gt;
&lt;br /&gt;
'''Определение.''' Два целых числа &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; называются ''сравнимыми по модулю'' &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;, если их разность &amp;lt;math&amp;gt;a-b&amp;lt;/math&amp;gt; делится без остатка на &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Символически сравнимость записывается в виде формулы (''сравнения''):&lt;br /&gt;
: &amp;lt;math&amp;gt;a \equiv b \pmod{m}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Число &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; называется '''модулем''' сравнения.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Если разность &amp;lt;math&amp;gt;a-b&amp;lt;/math&amp;gt; не делится на &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;, то запишем:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;a \not \equiv b \pmod{m}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Согласно определению, &amp;lt;math&amp;gt; a \equiv 0 \pmod{m} &amp;lt;/math&amp;gt; означает, что &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; делится на &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Теорема.''' &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;  сравнимо с &amp;lt;math&amp;gt; b &amp;lt;/math&amp;gt; тогда и только тогда, когда &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt; b &amp;lt;/math&amp;gt;  имеют одинаковые остатки при делении на &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt;.&lt;br /&gt;
Поэтому в качестве определения сравнения можно взять следующую эквивалентную формулировку:&lt;br /&gt;
&lt;br /&gt;
'''Определение.''' Целые числа &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; называются ''сравнимыми по модулю'' &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;, если остатки от деления этих чисел на &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; равны.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Примеры ==&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;101 \equiv 17 \pmod{21}&amp;lt;/math&amp;gt; , т. к. 101 – 17 = 84, а 84 делится без остатка на 21.&lt;br /&gt;
: &amp;lt;math&amp;gt;135 \equiv 11 \pmod{4}&amp;lt;/math&amp;gt; , т. к. оба числа 135 и 11 при делении на 4 дают остаток 3.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Свойства ==&lt;br /&gt;
&lt;br /&gt;
Для фиксированного натурального числа &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; отношение сравнимости по модулю &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; обладает следующими свойствами:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''Рефлексивность:''' для любого целого &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; справедливо &amp;lt;math&amp;gt; a \equiv a \pmod m &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''Симметричность:''' если &amp;lt;math&amp;gt; a \equiv b \pmod m &amp;lt;/math&amp;gt;, то &amp;lt;math&amp;gt; b \equiv a \pmod m &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''Транзитивность:''' если &amp;lt;math&amp;gt; a \equiv b \pmod m &amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt; b \equiv c \pmod m &amp;lt;/math&amp;gt;, то &amp;lt;math&amp;gt; a \equiv c \pmod m &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Таким образом, отношение сравнимости по модулю &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; является отношением эквивалентности на множестве целых чисел.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:'''Другие свойства:'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Обе части сравнения можно умножить на произвольное целое число. &lt;br /&gt;
:Если &amp;lt;math&amp;gt;a \equiv b \pmod m&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; – произвольное целое число, то &amp;lt;math&amp;gt; k \cdot a \equiv k \cdot b \pmod m&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Обе части сравнения можно разделить на их общий делитель, если он взаимно прост с модулем. &lt;br /&gt;
:Если &amp;lt;math&amp;gt; k \cdot a \equiv k \cdot b \pmod m &amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt; (k, m) = 1 &amp;lt;/math&amp;gt;, то &amp;lt;math&amp;gt;a \equiv b \pmod m&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Обе части сравнения и модуль можно умножить на одно и то же целое. &lt;br /&gt;
:Если &amp;lt;math&amp;gt;a \equiv b \pmod m&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; – произвольное натуральное число, то &amp;lt;math&amp;gt; k \cdot a \equiv k \cdot b \pmod {k \cdot m}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Обе части сравнения и модуль можно разделить на любой их общий делитель. &lt;br /&gt;
:Если &amp;lt;math&amp;gt; k \cdot a \equiv k \cdot b \pmod {k \cdot m}&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; – произвольные натуральные числа, то &amp;lt;math&amp;gt;a \equiv b \pmod m&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* К любой части сравнения можно прибавить (или отнять от нее) любое число, кратное модуля. &lt;br /&gt;
:Если &amp;lt;math&amp;gt;a \equiv b \pmod m&amp;lt;/math&amp;gt; то при любом целом &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; &amp;lt;math&amp;gt;a+n\cdot m \equiv b \pmod m&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Сравнения можно почленно складывать и вычитать. &lt;br /&gt;
&lt;br /&gt;
:Если &amp;lt;math&amp;gt;a \equiv b \pmod m&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;c \equiv d \pmod m&amp;lt;/math&amp;gt;, то &amp;lt;math&amp;gt;a+c \equiv b+d \pmod m&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;a-c \equiv b-d \pmod m&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Любое слагаемое левой или правой части сравнения можно перенести с противоположным знаком в другую часть.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Сравнения можно почленно перемножать. &lt;br /&gt;
:Если &amp;lt;math&amp;gt;a \equiv b \pmod m&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;c \equiv d \pmod m&amp;lt;/math&amp;gt;, то &amp;lt;math&amp;gt;a \cdot c \equiv b \cdot d \pmod m&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Если &amp;lt;math&amp;gt;a \equiv b \pmod m&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;f(x) = c_0 + c_1 \cdot x_1 + \ldots + c_n \cdot x_n&amp;lt;/math&amp;gt; - произвольный многочлен с целыми коэффициентами, то &amp;lt;math&amp;gt;f(a) = f(b) \pmod m&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Если сравнение выполняется по модулю &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;, то оно выполняется и по модулю &amp;lt;math&amp;gt;d&amp;lt;/math&amp;gt;, равному любому делителю числа &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;. &lt;br /&gt;
:Если &amp;lt;math&amp;gt;a \equiv b \pmod m&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;d|m&amp;lt;/math&amp;gt;, то &amp;lt;math&amp;gt;a \equiv b \pmod d&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Если &amp;lt;math&amp;gt;a \equiv b \pmod m&amp;lt;/math&amp;gt;, то множество общих делителей &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; совпадает с множеством общих делителей &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;. В частности, &amp;lt;math&amp;gt;(a,m) = (b,m)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Если сравнение &amp;lt;math&amp;gt;a \equiv b&amp;lt;/math&amp;gt; имеет место по нескольким модулям, то оно имеет место и по модулю, равному наименьшему общему кратному этих модулей. &lt;br /&gt;
:Если &amp;lt;math&amp;gt;a \equiv b \pmod m_1, a \equiv b \pmod m_2, \ldots, a \equiv b \pmod m_s&amp;lt;/math&amp;gt;, то &amp;lt;math&amp;gt;a \equiv b \pmod m&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;m = [m_1, m_2, \ldots, m_s]&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Если одна часть сравнения и модуль делятся на какое-либо число, то и другая часть сравнения делится на это число.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Классы вычетов ==&lt;br /&gt;
&lt;br /&gt;
При делении целых чисел на модуль &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; в остатке получатся числа &amp;lt;math&amp;gt;0, 1, 2, 3,\ldots, {m-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Отнесём все целые числа, дающие при делении на &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; один и тот же остаток в один класс, поэтому получится &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; различных классов по модулю &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;. В один класс попадут равноостаточные числа, они называются вычетами друг друга. &lt;br /&gt;
&lt;br /&gt;
'''Определение.''' Множество всех чисел сравнимых с &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; по модулю &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; называется '''классом вычетов''' &amp;lt;math&amp;gt;a &amp;lt;/math&amp;gt; по модулю &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Обозначим через &amp;lt;math&amp;gt;A_0&amp;lt;/math&amp;gt; класс вычетов, которые при делении на &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; дают остаток &amp;lt;math&amp;gt;0&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Например, числа вида &amp;lt;math&amp;gt;mt, t \in Z&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Через &amp;lt;math&amp;gt;A_1&amp;lt;/math&amp;gt; – числа, дающие при делении остаток &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Например, числа вида &amp;lt;math&amp;gt;mt+1, t \in Z&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Через &amp;lt;math&amp;gt;A_2&amp;lt;/math&amp;gt; – числа, дающие при делении остаток &amp;lt;math&amp;gt;2&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Например, числа вида &amp;lt;math&amp;gt;mt+2, t \in Z&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Через &amp;lt;math&amp;gt;A_{m-1}&amp;lt;/math&amp;gt; – числа, дающие при делении остаток &amp;lt;math&amp;gt;m-1&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Например, числа вида &amp;lt;math&amp;gt;mt+(m-1), t \in Z&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Определение.''' Полной системой вычетов по модулю &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; называется совокупность &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; целых чисел, содержащая точно по одному представителю из каждого класса вычетов по модулю &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Каждый класс вычетов по модулю &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; содержит в точности одно из чисел совокупности всех возможных остатков от деления на &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;: &amp;lt;math&amp;gt;0, 1, \ldots, m-1&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Можно доказать, что любая совокупность &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; чисел &amp;lt;math&amp;gt;m&amp;gt;1&amp;lt;/math&amp;gt;, попарно несравнимых по модулю &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;, есть полная система вычетов по модулю &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Часто рассматривают полную систему наименьших неотрицательных вычетов по модулю &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;: &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;0, 1, \ldots, m-1&amp;lt;/math&amp;gt;; &lt;br /&gt;
&lt;br /&gt;
полную систему наименьших положительных вычетов: &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;1, 2, \ldots, m&amp;lt;/math&amp;gt;; &lt;br /&gt;
&lt;br /&gt;
полную систему наименьших по абсолютной величине вычетов: &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;{-\frac{m}{2}+1}, {-\frac{m}{2}+2}, \ldots, -2, -1, 0, 1, 2, \ldots, {\frac{m}{2}}&amp;lt;/math&amp;gt; при чётном &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;-\left[{\frac{m}{2}}\right], {-\left[{\frac{m}{2}}\right]+1}, \ldots, -2, -1, 0, 1, 2, \ldots, \left[{\frac{m}{2}}\right]&amp;lt;/math&amp;gt; при нечётном &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Определение.''' Приведенной системой вычетов по модулю m называется совокупность всех вычетов из полной системы, взаимно простых с модулем math&amp;gt;m&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Т.е. приведённую систему вычетов по модулю &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; - это система чисел, взаимно простых с модулем, взятых по одному и только по одному из каждого класса. Приведенную систему обычно выбирают из наименьших неотрицательных вычетов. Число классов, взаимно простых с модулем &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;, равно значению функции Эйлера &amp;lt;math&amp;gt;\varphi(m)&amp;lt;/math&amp;gt;.&lt;/div&gt;</summary>
		<author><name>Isaeva</name></author>	</entry>

	<entry>
		<id>https://vscripts.ru/w/%D0%A2%D0%B5%D0%BE%D1%80%D0%B5%D0%BC%D0%B0_%D0%BE_%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D0%B8_%D1%81_%D0%BE%D1%81%D1%82%D0%B0%D1%82%D0%BA%D0%BE%D0%BC._%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%95%D0%B2%D0%BA%D0%BB%D0%B8%D0%B4%D0%B0</id>
		<title>Теорема о делении с остатком. Алгоритм Евклида</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%A2%D0%B5%D0%BE%D1%80%D0%B5%D0%BC%D0%B0_%D0%BE_%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D0%B8_%D1%81_%D0%BE%D1%81%D1%82%D0%B0%D1%82%D0%BA%D0%BE%D0%BC._%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%95%D0%B2%D0%BA%D0%BB%D0%B8%D0%B4%D0%B0"/>
				<updated>2015-06-24T12:20:55Z</updated>
		
		<summary type="html">&lt;p&gt;Isaeva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Напомним теорему о делении с остатком:&lt;br /&gt;
&lt;br /&gt;
'''Теорема о делении с остатком'''&lt;br /&gt;
&lt;br /&gt;
Для любых целых &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;b \not= 0&amp;lt;/math&amp;gt;, существует единственный набор целых чисел &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;, что &amp;lt;math&amp;gt;a = bq + r&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;0 \le r &amp;lt; |b|&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;|b|&amp;lt;/math&amp;gt; — модуль числа &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Легко доказывается, что для любых целых чисел &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;b \not= 0&amp;lt;/math&amp;gt; деление с остатком возможно и числа &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt; определяются однозначно. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Рассмотрим следующий пример:&lt;br /&gt;
&lt;br /&gt;
'''Пример'''&lt;br /&gt;
&lt;br /&gt;
Пусть модуль &amp;lt;math&amp;gt;p = 6&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Тогда имеем шесть классов разбиения множества целых чисел по модулю 6:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;K_0 = \left\{\ldots,-18,-12,-6,0,6,12,18,\ldots \right\}, r=0&amp;lt;/math&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;K_1 = \left\{\ldots,-17,-11,-5,1,7,13,19,\ldots \right\}, r=1&amp;lt;/math&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;K_2 = \left\{\ldots,-16,-10,-4,2,8,14,20,\ldots \right\}, r=2&amp;lt;/math&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;K_3 = \left\{\ldots,-15,-9,-3,3,9,15,21,\ldots \right\}, r=3&amp;lt;/math&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;K_4 = \left\{\ldots,-14,-8,-2,4,10,16,22,\ldots \right\}, r=4&amp;lt;/math&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;K_5 = \left\{\ldots,-13,-7,-1,5,11,17,23,\ldots \right\}, r=5&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
где через &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt; обозначен остаток от деления целого числа на 6.&lt;br /&gt;
&lt;br /&gt;
В данном примере полная система наименьших неотрицательных вычетов есть множество &amp;lt;math&amp;gt;\left\{0, 1, 2, 3, 4, 5 \right\}&amp;lt;/math&amp;gt;; полная система наименьших положительных вычетов – множество &amp;lt;math&amp;gt;\left\{1, 2, 3, 4, 5, 6 \right\}&amp;lt;/math&amp;gt;; полная система наименьших по абсолютной величине вычетов – множество &amp;lt;math&amp;gt;\left\{-2,-1, 0, 1, 2, 3 \right\}&amp;lt;/math&amp;gt;; приведённая система вычетов – множество &amp;lt;math&amp;gt;\left\{1,5 \right\}&amp;lt;/math&amp;gt;, так как &amp;lt;math&amp;gt;\varphi(6) = 6\,\left(1-\frac{1}{2}\right)\left(1-\frac{1}{3}\right) = 2&amp;lt;/math&amp;gt; ; фактор-множество &amp;lt;math&amp;gt;Z{|{\equiv}_6} = \left\{K_0, K_1, K_2, K_3, K_4, K_5 \right\}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Один из методов выполнения арифметических операций над целыми числами основан на простых положениях теории чисел. Идея этого метода состоит в том, что целые числа представляются в одной из непозиционных систем – в системе остаточных классов. А именно: вместо операций над целыми числами оперируют с остатками от деления этих чисел на заранее выбранные числа – модули &amp;lt;math&amp;gt;p_1, p_2, \ldots, p_n&amp;lt;/math&amp;gt;. &lt;br /&gt;
Чаще всего модули &amp;lt;math&amp;gt;p_1, p_2, \ldots, p_n&amp;lt;/math&amp;gt; выбирают из множества простых чисел.&lt;br /&gt;
&lt;br /&gt;
Пусть&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;A \equiv {\alpha}_1 \pmod{p_1}&amp;lt;/math&amp;gt;,&lt;br /&gt;
: &amp;lt;math&amp;gt;A \equiv {\alpha}_2 \pmod{p_2}&amp;lt;/math&amp;gt;,&lt;br /&gt;
: &amp;lt;math&amp;gt;\ldots&amp;lt;/math&amp;gt;,&lt;br /&gt;
: &amp;lt;math&amp;gt;A \equiv {\alpha}_n \pmod{p_n}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Так как в кольце целых чисел имеет место теорема о делении с остатком, т. е. &amp;lt;math&amp;gt;\forall a \in Z, \forall b \in Z, b\not= 0 \, \exist q \in Z, \exist r \in Z (0 \le r &amp;lt;b):\, a=bq+r &amp;lt;/math&amp;gt;, то кольцо Z, по определению, является евклидовым. Таким образом, в качестве чисел &amp;lt;math&amp;gt; {\alpha}_i, i=0,\ldots,n &amp;lt;/math&amp;gt; можно выбрать остатки от деления числа &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt; на &amp;lt;math&amp;gt;p_i&amp;lt;/math&amp;gt; соответственно.&lt;br /&gt;
&lt;br /&gt;
Рассмотрим гомоморфное отображение: &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;Z \to Z{|{\equiv}_{p_1}} \times Z{|{\equiv}_{p_2}} \times \ldots \times Z{|{\equiv}_{p_n}} &amp;lt;/math&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
Тогда каждому целому числу А можно поставить в соответствие кортеж &amp;lt;math&amp;gt;\left\{{\alpha}_1, {\alpha}_2, \ldots, {\alpha}_n \right\}&amp;lt;/math&amp;gt; наименьших неотрицательных вычетов по одному из соответствующих классов. &lt;br /&gt;
&lt;br /&gt;
Важно отметить, что при преобразовании числа нет потери информации, если выполнено условие &amp;lt;math&amp;gt;A &amp;lt; p_1 \cdot p_2 \cdot \ldots \cdot p_n&amp;lt;/math&amp;gt;, поскольку всегда, зная &amp;lt;math&amp;gt;\left({\alpha}_1, {\alpha}_2, \ldots, {\alpha}_n \right)&amp;lt;/math&amp;gt; можно восстановить само число &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt;. Поэтому кортеж  можно рассматривать как один из способов представления целого числа &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt; – модулярное представление, или представление в системе остаточных классов (СОК).&lt;br /&gt;
&lt;br /&gt;
Для дальнейшего используем расширенный алгоритм Евклида или его аналог – алгоритм нахождения линейного представления наибольшего общего делителя целых чисел: если числа а и b одновременно не равны нулю, то существуют целые числа &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt;, такие, что &amp;lt;math&amp;gt;a \cdot b = a \cdot x + b \cdot y&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Действительно, пусть &amp;lt;math&amp;gt;d&amp;lt;/math&amp;gt; – наименьшее целое положительное число вида &amp;lt;math&amp;gt;a \cdot x + b \cdot y&amp;lt;/math&amp;gt;, например, &amp;lt;math&amp;gt;d = a \cdot x_0 + b \cdot y_0&amp;lt;/math&amp;gt;, где числа &amp;lt;math&amp;gt;x_0&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;y_0&amp;lt;/math&amp;gt; не обязательно определены однозначно. Существование числа &amp;lt;math&amp;gt;d&amp;lt;/math&amp;gt; следует только из принципа полной упорядоченности. Очевидно, что &amp;lt;math&amp;gt;d &amp;gt; 0&amp;lt;/math&amp;gt;. Остаётся показать, что &amp;lt;math&amp;gt;d = (a,b)&amp;lt;/math&amp;gt;. Для этого надо проверить выполнение двух условий: а) &amp;lt;math&amp;gt;d|a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;d|b&amp;lt;/math&amp;gt; б) если &amp;lt;math&amp;gt;c|a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;c|b&amp;lt;/math&amp;gt;&lt;br /&gt;
то &amp;lt;math&amp;gt;c|d&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
От противного: допустим, что свойство а) не выполняется, для определенности положим, что не выполнено &amp;lt;math&amp;gt;d|b&amp;lt;/math&amp;gt;. Тогда по теореме о делении с остатком &amp;lt;math&amp;gt;a = dq + r&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;0 \le r &amp;lt; |d|&amp;lt;/math&amp;gt;, и, следовательно, &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;r=b-dq = b-(ax_0+by_0)q = a(-qx_0)+b(1-qy_0)&amp;lt;/math&amp;gt;, &lt;br /&gt;
&lt;br /&gt;
что противоречит минимальности &amp;lt;math&amp;gt;d&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Выполнение свойства б) проверяется непосредственно: &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;c|a \Rightarrow \left(\exist q_1 \in Z\right)\left(a = q_1\, c\right)&amp;lt;/math&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;c|b \Rightarrow \left(\exist q_2 \in Z\right)\left(a = q_2\, c\right)&amp;lt;/math&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;d=ax_0 + by_0 \Rightarrow d = q_1 c x_0 + q_2 c y_0 \Rightarrow d = \left(q_1 x_0 + q_2 y_0\right) c|d &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Алгоритм Евклида для целых чисел'''&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; — целые числа, не равные одновременно нулю, и последовательность чисел&lt;br /&gt;
: &amp;lt;math&amp;gt; a &amp;gt; b &amp;gt; r_1 &amp;gt; r_2 &amp;gt; r_3 &amp;gt; r_4 &amp;gt; \cdots &amp;gt;r_n&amp;lt;/math&amp;gt;&lt;br /&gt;
определена тем, что каждое &amp;lt;math&amp;gt;r_k&amp;lt;/math&amp;gt; — это остаток от деления предпредыдущего числа на предыдущее, а предпоследнее делится на последнее нацело, то есть&lt;br /&gt;
: &amp;lt;math&amp;gt;a = bq_0 + r_1&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;b = r_1q_1 + r_2&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;r_1 = r_2q_2 + r_3&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;\cdots&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;r_{k-2} = r_{k-1} q_{k-1} + r_k&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;\cdots&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;r_{n-2} = r_{n-1}q_{n-1}+ r_n&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;r_{n-1} = r_n q_n&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Тогда '''НОД''' &amp;lt;math&amp;gt;(a,b)&amp;lt;/math&amp;gt;, наибольший общий делитель &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt;, равен&lt;br /&gt;
&amp;lt;math&amp;gt;r_n&amp;lt;/math&amp;gt;, последнему ненулевому члену этой последовательности.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Существование''' таких &amp;lt;math&amp;gt;r_1, r_2, ...&amp;lt;/math&amp;gt;, то есть возможность деления с остатком &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; на &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; для любого целого &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и целого &amp;lt;math&amp;gt;b\ne 0&amp;lt;/math&amp;gt;, доказывается индукцией.&lt;br /&gt;
&lt;br /&gt;
'''Корректность''' этого алгоритма вытекает из следующих двух утверждений:&lt;br /&gt;
&lt;br /&gt;
* Пусть &amp;lt;math&amp;gt;a = bq + r&amp;lt;/math&amp;gt;, тогда '''НОД''' &amp;lt;math&amp;gt;(a,b)&amp;lt;/math&amp;gt; = '''НОД''' &amp;lt;math&amp;gt;(b,r)&amp;lt;/math&amp;gt;.&lt;br /&gt;
* '''НОД''' &amp;lt;math&amp;gt;(0,r)&amp;lt;/math&amp;gt; = &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt; для любого ненулевого &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt; (так как 0 делится на любое целое число, кроме нуля).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Расширенный алгоритм Евклида для целых чисел'''&lt;br /&gt;
&lt;br /&gt;
Рассмотрим расширенный алгоритм Евклида для нахождения линейного представления наибольшего общего делителя &amp;lt;math&amp;gt;(a,b) = ax + by &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Значения &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt; вычисляются в серии шагов, в каждом из которых мы выражаем &amp;lt;math&amp;gt;a_i&amp;lt;/math&amp;gt; (вычисленное в процессе работы алгоритма Евклида) в форме &amp;lt;math&amp;gt;a x_i + b y_i &amp;lt;/math&amp;gt;. А именно, рассмотрим последовательность&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;a_0 = a&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;a_0 = a x_0 + b y_0&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;a_1 = b&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;a_1 = a x_1 + b y_1&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;a_2 = a_0 - a_1 q_1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;a_2 = a x_2 + b y_2&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;a_3 = a_1 - a_2 q_2&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;a_3 = a x_3 + b y_3&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;\cdots&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;a_i = a_{i-2} - a_{i-1} q_{i-1}&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;a_i = a x_i + b y_i&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;\cdots&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;a_k = a_{k-2} - a_{k-1} q_{k-1}&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;a_k = a x_k + b y_k&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;0 = a_{k-1} - a_k q_k&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;0 = a x_{k+1} + b y_{k+1}&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В левом столбце алгоритма записана последовательность делений, которая получается в результате работы алгоритма Евклида и которая разрешена относительно остатков. Согласно теореме Ламе (1844 г.) число делений, которое необходимо выполнить для нахождения &amp;lt;math&amp;gt;(a,b)&amp;lt;/math&amp;gt;, не превосходит числа цифр в меньшем из чисел &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt;, умноженного на 5 (оценка наихудшего случая для алгоритма Евклида). Теорема Ламе доказывается на основе последовательности Фибоначчи.&lt;br /&gt;
&lt;br /&gt;
В правом столбце алгоритма каждый остаток выражен через &amp;lt;math&amp;gt;a x_i + b y_i&amp;lt;/math&amp;gt;. Надо вычислить &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;y_i&amp;lt;/math&amp;gt;. Очевидно, что &amp;lt;math&amp;gt;x_0 = 1, y_0 = 0&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;x_1 = 0, y_1 = 1&amp;lt;/math&amp;gt;. Сравнивая обе части на ''i''-м шаге, получим &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;a_i = a x_i + b y_i = a_{i-2} - a_{i-1} q_{i-1} = \left(a x_{i-2} + b y_{i-2} \right) - \left(a x_{i-1} + b y_{i-1} \right) q_{i-1} =&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \left(a x_{i-2} - x_{i-1} q_{i-1} \right) + \left(b y_{i-2} - y_{i-1} q_{i-1} \right)&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
откуда получается следующая индуктивная процедура вычисления &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;y_i&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;q_{i-1} = \left \lfloor \frac{a_{i-2}}{a_{i-1}} \right \rfloor&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;a_i = a_{i-2} - a_{i-1} q_{i-1}&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;x_i = x_{i-2} - x_{i-1} q_{i-1}&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;y_i = y_{i-2} - y_{i-1} q_{i-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Пример (Расширенный алгоритм Евклида)'''. &lt;br /&gt;
&lt;br /&gt;
Применим расширенный алгоритм Евклида к числам &amp;lt;math&amp;gt;a = 342, b = 612&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Весь алгоритм представим в виде следующей таблицы.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \begin{array}{|c|r|r|r|r|r|r|r|} \hline Iteration &amp;amp; q &amp;amp; A_0 &amp;amp; a_1 &amp;amp; x_0 &amp;amp; x_1 &amp;amp; Y_0 &amp;amp; y_1 &lt;br /&gt;
\\ \hline 0 &amp;amp; - &amp;amp; 342 &amp;amp; 612 &amp;amp;  1 &amp;amp;   0 &amp;amp;  0 &amp;amp;  1&lt;br /&gt;
\\ \hline 1 &amp;amp; 0 &amp;amp; 612 &amp;amp; 342 &amp;amp;  0 &amp;amp;   1 &amp;amp;  1 &amp;amp;  0&lt;br /&gt;
\\ \hline 2 &amp;amp; 1 &amp;amp; 342 &amp;amp; 270 &amp;amp;  1 &amp;amp;  -1 &amp;amp;  0 &amp;amp;  1&lt;br /&gt;
\\ \hline 3 &amp;amp; 1 &amp;amp; 270 &amp;amp;  72 &amp;amp; -1 &amp;amp;   2 &amp;amp;  1 &amp;amp; -1&lt;br /&gt;
\\ \hline 4 &amp;amp; 3 &amp;amp;  72 &amp;amp;  54 &amp;amp;  2 &amp;amp;  -7 &amp;amp; -1 &amp;amp;  4&lt;br /&gt;
\\ \hline 5 &amp;amp; 1 &amp;amp;  54 &amp;amp;  18 &amp;amp; -7 &amp;amp;   9 &amp;amp;  4 &amp;amp; -5&lt;br /&gt;
\\ \hline 6 &amp;amp; 3 &amp;amp;  18 &amp;amp;   0 &amp;amp;  9 &amp;amp; -34 &amp;amp; -5 &amp;amp; 19&lt;br /&gt;
&lt;br /&gt;
\\ \hline \end{array} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Заметим, что равенство &amp;lt;math&amp;gt;a_0 = a x_0 + b y_0&amp;lt;/math&amp;gt; выполняется на каждом шаге итерации. Алгоритм выдаёт &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;d = 18, x = 9, y = -5&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
и тогда &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;18=342 \cdot 9 + 612 \cdot (-5)&amp;lt;/math&amp;gt;.&lt;/div&gt;</summary>
		<author><name>Isaeva</name></author>	</entry>

	<entry>
		<id>https://vscripts.ru/w/%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BE%D1%81%D1%82%D0%B0%D1%82%D0%BE%D1%87%D0%BD%D1%8B%D1%85_%D0%BA%D0%BB%D0%B0%D1%81%D1%81%D0%BE%D0%B2_-_%D0%B2%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5</id>
		<title>Система остаточных классов - введение</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BE%D1%81%D1%82%D0%B0%D1%82%D0%BE%D1%87%D0%BD%D1%8B%D1%85_%D0%BA%D0%BB%D0%B0%D1%81%D1%81%D0%BE%D0%B2_-_%D0%B2%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5"/>
				<updated>2015-06-24T09:49:11Z</updated>
		
		<summary type="html">&lt;p&gt;Isaeva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Теоретико-числовая база построения системы остаточных классов =&lt;br /&gt;
&lt;br /&gt;
Напомним определение деления с остатком.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Определение''' &lt;br /&gt;
&lt;br /&gt;
Говорят, что целое число &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; делится на натуральное число &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; с остатком, если имеется пара целых чисел &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;, таких, что &amp;lt;math&amp;gt;n = m \cdot q+r&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;0\le r&amp;lt;m&amp;lt;/math&amp;gt;. &lt;br /&gt;
&amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; называется делимым, &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; - делителем, &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; - неполным частным, &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt; - остатком.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Для целых чисел:&lt;br /&gt;
&lt;br /&gt;
'''Определение''' &lt;br /&gt;
&lt;br /&gt;
Говорят, что целое число &amp;lt;math&amp;gt;n \in Z&amp;lt;/math&amp;gt; делится на целое число &amp;lt;math&amp;gt;m \in Z&amp;lt;/math&amp;gt; с остатком, если имеется пара целых чисел &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;, таких, что &amp;lt;math&amp;gt;n = m \cdot q+r&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;0\le r&amp;lt;|m|&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Пример''': &lt;br /&gt;
&lt;br /&gt;
'''48''' при делении на '''5''' даёт остаток '''3''', т.к. &amp;lt;math&amp;gt;48=5\cdot 9+3&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;0\le 3&amp;lt;5&amp;lt;/math&amp;gt;, '''-48''' при делении на '''5''' даёт остаток '''2''', т.к. &amp;lt;math&amp;gt;-48=5\cdot (-10)+2&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;0\le 2&amp;lt;5&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Сравнения и их основные свойства ==&lt;br /&gt;
&lt;br /&gt;
Возьмём произвольное фиксированное натуральное число &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; и будем рассматривать остатки при делении на &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; различных целых чисел.&lt;br /&gt;
&lt;br /&gt;
При рассмотрении свойств этих остатков и проведении операций над ними удобно ввести понятие сравнения по модулю.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Определение''' &lt;br /&gt;
&lt;br /&gt;
Два целых числа &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt; b &amp;lt;/math&amp;gt; называются '''сравнимыми по модулю &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt;''', если их разность &amp;lt;math&amp;gt; a-b &amp;lt;/math&amp;gt; делится без остатка на &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Символически сравнимость записывается в виде формулы ('''сравнения'''):&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;a \equiv b \pmod{m}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Число &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; называется '''модулем''' сравнения.&lt;br /&gt;
&lt;br /&gt;
Эквивалентная формулировка:&lt;br /&gt;
&lt;br /&gt;
'''Определение''' &lt;br /&gt;
&lt;br /&gt;
Целые числа &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt; b &amp;lt;/math&amp;gt; называются '''сравнимыми по модулю &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt;''', если остатки от деления этих чисел на &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; равны.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Отношение сравнимости по модулю &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; обладает свойствами рефлексивности, симметричности и транзитивности, т.е. является отношением эквивалентности.&lt;br /&gt;
&lt;br /&gt;
Отнесём все целые числа, дающие при делении на &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; один и тот же остаток в один класс, поэтому получится &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; различных классов по модулю &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt;.&lt;br /&gt;
Множество всех чисел сравнимых с &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; по модулю &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; называется классом вычетов &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; по модулю &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Подробнее о свойствах сравнений и классах вычетов смотри [[Сравнения и их основные свойства| Сравнения и их основные свойства]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Теорема о делении с остатком. Алгоритм Евклида ==&lt;br /&gt;
&lt;br /&gt;
'''Теорема о делении с остатком'''&lt;br /&gt;
&lt;br /&gt;
Для любых целых &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;b \not= 0&amp;lt;/math&amp;gt;, существует единственный набор целых чисел &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;, что &amp;lt;math&amp;gt;a = bq + r&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;0 \le r &amp;lt; |b|&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;|b|&amp;lt;/math&amp;gt; — модуль числа &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
На этой операции основан алгоритм Евклида нахождения наибольшего общего делителя двух целых чисел.&lt;br /&gt;
&lt;br /&gt;
'''Алгоритм Евклида для целых чисел'''&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; — целые числа, не равные одновременно нулю, и последовательность чисел&lt;br /&gt;
: &amp;lt;math&amp;gt; a &amp;gt; b &amp;gt; r_1 &amp;gt; r_2 &amp;gt; r_3 &amp;gt; r_4 &amp;gt; \cdots &amp;gt;r_n&amp;lt;/math&amp;gt;&lt;br /&gt;
определена тем, что каждое &amp;lt;math&amp;gt;r_k&amp;lt;/math&amp;gt; — это остаток от деления предпредыдущего числа на предыдущее, а предпоследнее делится на последнее нацело, то есть&lt;br /&gt;
: &amp;lt;math&amp;gt;a = bq_0 + r_1&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;b = r_1q_1 + r_2&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;r_1 = r_2q_2 + r_3&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;\cdots&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;r_{k-2} = r_{k-1} q_{k-1} + r_k&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;\cdots&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;r_{n-2} = r_{n-1}q_{n-1}+ r_n&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;r_{n-1} = r_n q_n&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Тогда '''НОД''' &amp;lt;math&amp;gt;(a,b)&amp;lt;/math&amp;gt;, наибольший общий делитель &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt;, равен&lt;br /&gt;
&amp;lt;math&amp;gt;r_n&amp;lt;/math&amp;gt;, последнему ненулевому члену этой последовательности.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Существование''' таких &amp;lt;math&amp;gt;r_1, r_2, ...&amp;lt;/math&amp;gt;, то есть возможность деления с остатком &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; на &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; для любого целого &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и целого &amp;lt;math&amp;gt;b\ne 0&amp;lt;/math&amp;gt;, доказывается индукцией.&lt;br /&gt;
&lt;br /&gt;
'''Корректность''' этого алгоритма вытекает из следующих двух утверждений:&lt;br /&gt;
&lt;br /&gt;
* Пусть &amp;lt;math&amp;gt;a = bq + r&amp;lt;/math&amp;gt;, тогда '''НОД''' &amp;lt;math&amp;gt;(a,b)&amp;lt;/math&amp;gt; = '''НОД''' &amp;lt;math&amp;gt;(b,r)&amp;lt;/math&amp;gt;.&lt;br /&gt;
* '''НОД''' &amp;lt;math&amp;gt;(0,r)&amp;lt;/math&amp;gt; = &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt; для любого ненулевого &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt; (так как 0 делится на любое целое число, кроме нуля).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Смотри [[Теорема о делении с остатком. Алгоритм Евклида|Теорема о делении с остатком. Алгоритм Евклида]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Китайская теорема об остатках ==&lt;br /&gt;
&lt;br /&gt;
Фундаментальным положением, лежащим в основе модулярного представления чисел, является китайская теорема об остатках (Chinese Remainder Theorem - CRT). &lt;br /&gt;
Например, эта теорема гарантирует, что при правильном выборе модулей СОК  &lt;br /&gt;
каждое число из динамического диапазона имеет в СОК единственное представление, &lt;br /&gt;
и по этому представлению можно определить представленное число.&lt;br /&gt;
В своей первоначальной формулировке эта теорема была доказана китайским математиком Сунь-Цзы приблизительно в 100 г. н.э.&lt;br /&gt;
В современной формулировке теорема звучит так:&lt;br /&gt;
&lt;br /&gt;
'''Теорема'''&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;p_1, p_2, \ldots, p_k&amp;lt;/math&amp;gt; - попарно взаимно простые числа, большие 1, и пусть &amp;lt;math&amp;gt;p = p_1 \cdot p_2 \cdot \ldots  \cdot p_k&amp;lt;/math&amp;gt;. Тогда существует единственное неотрицательное решение по модулю &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; следующей системы сравнений:&lt;br /&gt;
: &amp;lt;math&amp;gt;x \equiv a_1 \pmod{p_1}&amp;lt;/math&amp;gt;,&lt;br /&gt;
: &amp;lt;math&amp;gt;x \equiv a_2 \pmod{p_2}&amp;lt;/math&amp;gt;,&lt;br /&gt;
: &amp;lt;math&amp;gt;\ldots&amp;lt;/math&amp;gt;,&lt;br /&gt;
: &amp;lt;math&amp;gt;x \equiv a_k \pmod{p_k}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Другими словами, отображение, которое каждому целому числу &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;0\le x &amp;lt;p&amp;lt;/math&amp;gt;, ставит в соответствие кортеж &amp;lt;math&amp;gt;a_1, a_2,\ldots, a_k&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;x \equiv a_i \pmod{p_i}, i = 1, \ldots k&amp;lt;/math&amp;gt; является биекцией кольца &amp;lt;math&amp;gt;Z_P&amp;lt;/math&amp;gt; на декартово произведение &amp;lt;math&amp;gt;Z_{p_1} \times Z_{p_2} \times \ldots \times Z_{p_k}&amp;lt;/math&amp;gt;  колец &amp;lt;math&amp;gt;Z_{p_1}, Z_{p_2}, \ldots, Z_{p_k}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Подробности и доказательство теоремы смотри [[Китайская теорема об остатках| Китайская теорема об остатках]].&lt;br /&gt;
&lt;br /&gt;
Смотри также [[Описание КТО II|Китайская теорема об остатках(КТО II)]], [[Описание КТО III|Китайская теорема об остатках (КТО III)]].&lt;br /&gt;
&lt;br /&gt;
== Теоремы Эйлера и Ферма, их роль в вычислении мультипликативных обратных элементов по заданному модулю ==&lt;br /&gt;
&lt;br /&gt;
'''Определение'''&lt;br /&gt;
&lt;br /&gt;
Функция Эйлера &amp;lt;math&amp;gt;\varphi(n)&amp;lt;/math&amp;gt; — это количество чисел от &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; до &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt;, взаимно простых с &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Т.е. это количество таких натуральных чисел из отрезка [1; n], наибольший общий делитель (НОД) которых с &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; равен единице.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Tеоремa Эйлера'''&lt;br /&gt;
&lt;br /&gt;
Если &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; взаимно просты, то &amp;lt;math&amp;gt;a^{\varphi(p)} \equiv 1 \pmod p&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;\varphi(n)&amp;lt;/math&amp;gt; - функция Эйлера.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Частным случаем теоремы Эйлера является малая теорема Ферма.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Малая теорема Ферма'''&lt;br /&gt;
&lt;br /&gt;
Если &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; - простое число и &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; - произвольное целое число, не делящееся на &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;, то &amp;lt;math&amp;gt;a^{p-1} \equiv 1 \pmod p &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Смотри [[Функция Эйлера|Функция Эйлера]], [[Вычисление мультипликативных обратных элементов по заданному модулю|Вычисление мультипликативных обратных элементов по заданному модулю]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Числа Мерсенна, Ферма и операции над ними ==&lt;br /&gt;
&lt;br /&gt;
При рассмотрении отдельных классов простых чисел интерес представляет вопрос о простых числах специального вида, например, таких как числа Мерсенна или числа Ферма.&lt;br /&gt;
&lt;br /&gt;
'''Определение'''&lt;br /&gt;
&lt;br /&gt;
'''Числа Мерсенна''' — числа вида &amp;lt;math&amp;gt;M_n = 2^n - 1&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; — натуральное число.&lt;br /&gt;
Названы в честь французского математика Марена Мерсенна.&lt;br /&gt;
&lt;br /&gt;
Иногда числами Мерсенна называют только числа &amp;lt;math&amp;gt;M_n&amp;lt;/math&amp;gt; с нечетными или простыми индексами ''n''. &lt;br /&gt;
&lt;br /&gt;
Множества простых чисел в этих последовательностях совпадают, а потому понятие ''простого числа Мерсенна'' не зависит от того, как именно определяются числа Мерсенна.&lt;br /&gt;
&lt;br /&gt;
При простых значениях n = p число   может оказаться простым, но может быть составным.&lt;br /&gt;
Например, при &amp;lt;math&amp;gt;p = 2, 3, 5, 7, 13, 17, 19&amp;lt;/math&amp;gt; мы получаем простые числа Мерсенна: &amp;lt;math&amp;gt;3, 7, 31, 127, 8191, 131071&amp;lt;/math&amp;gt;, а при &amp;lt;math&amp;gt;p = 11, 23, 29&amp;lt;/math&amp;gt; числа &amp;lt;math&amp;gt;2^p - 1&amp;lt;/math&amp;gt; - составные. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Определение'''&lt;br /&gt;
&lt;br /&gt;
'''Числа Ферма''' — числа вида &amp;lt;math&amp;gt;F_n=2^{2^n}+1&amp;lt;/math&amp;gt;, где ''n'' — неотрицательное целое число. &lt;br /&gt;
&lt;br /&gt;
При &amp;lt;math&amp;gt;n = 0, 1, 2, 3, 4&amp;lt;/math&amp;gt; числа Ферма простые: &amp;lt;math&amp;gt;3, 5, 17, 257, 65537&amp;lt;/math&amp;gt;. Известно, что для &amp;lt;math&amp;gt;5\le n \le 32&amp;lt;/math&amp;gt; числа &amp;lt;math&amp;gt;F_n&amp;lt;/math&amp;gt; являются составными. На 2014 г. не найдено ни одного простого числа такого вида для &amp;lt;math&amp;gt;n&amp;gt;4&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Все числа Мерсенна и Ферма – взаимно простые. Кроме того, для модулей СОК вида &amp;lt;math&amp;gt;M_n = 2^n - 1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;M_n = 2^n + 1&amp;lt;/math&amp;gt; легко реализуется преобразование и арифметические операции. Поэтому эффективно выбирать модули СОК в виде чисел Мерсенна и Ферма. &lt;br /&gt;
&lt;br /&gt;
Смотри [[Числа Мерсенна и Ферма|Числа Мерсенна и Ферма]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Математические модели модулярного представления и параллельной обработки информации =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Определение системы остаточных классов==&lt;br /&gt;
&lt;br /&gt;
Представление чисел в виде набора остатков от деления на выбранные натуральные модули - основания системы называется системой остаточных классов - СОК (residue number system - RNS) или модулярной системой счисления - МСС (modular system).&lt;br /&gt;
&lt;br /&gt;
Смотри [[Система остаточных классов|Система остаточных классов]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Выбор СОК как системы счисления ==&lt;br /&gt;
&lt;br /&gt;
Под системой счисления понимают совокупность символический метод записи чисел, представление чисел с помощью письменных знаков, или, точнее, способ кодирования (представления) элементов некоторой конечной модели действительных чисел словами одного или более алфавитов. &lt;br /&gt;
&lt;br /&gt;
К любой кодовой системе применимы следующие требования:&lt;br /&gt;
&lt;br /&gt;
* возможность представления в данной системе любой величины в рассматриваемом, заранее назначенном диапазоне;&lt;br /&gt;
* единственность представления – любая кодовая комбинация соответствует одному и только одному числу в заданном диапазоне;&lt;br /&gt;
* простота оперирования числами в данной системе счисления.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Системы счисления подразделяются на позиционные, непозиционные и смешанные. ([https://ru.wikipedia.org/wiki/%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D1%81%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F#.D0.9D.D0.B5.D0.BF.D0.BE.D0.B7.D0.B8.D1.86.D0.B8.D0.BE.D0.BD.D0.BD.D1.8B.D0.B5_.D1.81.D0.B8.D1.81.D1.82.D0.B5.D0.BC.D1.8B_.D1.81.D1.87.D0.B8.D1.81.D0.BB.D0.B5.D0.BD.D0.B8.D1.8F Система счисления])&lt;br /&gt;
&lt;br /&gt;
В позиционных системах счисления один и тот же числовой знак (цифра) в записи числа имеет различные значения в зависимости от того места (разряда), где он расположен.  Обычно используется b-ричная система счисления, которая определяется целым числом b&amp;gt;1, называемым основанием системы счисления.  &lt;br /&gt;
&lt;br /&gt;
Смешанная система счисления является обобщением b-ричной системы счисления и также зачастую относится к позиционным системам счисления. Смотри [[Полиадический код|Полиадический код]].&lt;br /&gt;
&lt;br /&gt;
В непозиционных системах счисления величина, которую обозначает цифра, не зависит от её положения в числе. При этом система может накладывать ограничения на положение цифр.&lt;br /&gt;
&lt;br /&gt;
Всякая вычислительная структура тесно связана с системой счисления, в которой она работает. &lt;br /&gt;
&lt;br /&gt;
В обычной позиционной системе счисления (ПСС) значение разряда любого числа, кроме младшего, являющегося результатом двухместной арифметической операции, зависит не только от значения одноимённых операндов, но и от всех младших разрядов, т. е. ПСС обладает строго последовательной структурой. &lt;br /&gt;
Напротив, непозиционные коды с параллельной структурой позволяют реализовать распараллеливание операций на уровне выполнения элементарных арифметических действий. &lt;br /&gt;
&lt;br /&gt;
В качестве такой непозиционной системы удобна система остаточных классов (СОК). &lt;br /&gt;
&lt;br /&gt;
Базовые арифметические операции в СОК делятся на две группы: модульные и немодульные.&lt;br /&gt;
&lt;br /&gt;
* Модульные операции, которые могут быть выполнены параллельно и независимо над отдельными цифрами чисел: сложение, умножение, вычитание без знака.&lt;br /&gt;
&lt;br /&gt;
* Немодульные операции, которые требуют знания величины модулярных чисел в целом: сравнение, вычитание с получением отрицательного результата, контроль переполнения модулярного числа.&lt;br /&gt;
&lt;br /&gt;
Основным достоинством системы остаточных классов является сравнительная простота выполнения модульных операций, недостатком - большая трудоемкость немодульных операций.&lt;br /&gt;
&lt;br /&gt;
Смотри [[Представление числа в системе остаточных классов|Представление числа в системе остаточных классов]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Модульные операции над числами в системе остаточных классов ==&lt;br /&gt;
&lt;br /&gt;
Возможность применения СОК в вычислительных алгоритмах обусловлено наличием определённого изоморфизма между математическими операциями над целыми числами и соответствующими операциями над системой целых неотрицательных остатков по отдельным модулям. Сложение, умножение, возведение в целую положительную степень любых целых положительных чисел идентичны соответствующим операциям, выполняемым над системой остатков. &lt;br /&gt;
&lt;br /&gt;
Смотри [[Модульные операции|Модульные операции]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Основные методы и алгоритмы перехода от позиционного представления к остаткам ==&lt;br /&gt;
&lt;br /&gt;
Обычно исходные данные для вычислений представлены в каком-либо традиционном представлении, двоичном или десятичном. В таком же виде ожидаются результаты вычислений. Отсюда понятна необходимость перевода чисел из позиционного представления в представление СОК (прямое преобразование) и обратно (обратное преобразование). Одной из первых немодульных процедур является прямое преобразование позиционных кодов в код СОК.&lt;br /&gt;
&lt;br /&gt;
Перевод числа в систему остаточных классов можно осуществить непосредственно методом деления, с модулями СОК в качестве делителей. Однако из-за сложности операции деления техническая реализация такого метода неэффективна.&lt;br /&gt;
Поэтому рассматриваются другие методы.&lt;br /&gt;
Например, часто используется метод перевода числа из позиционной системы счисления в СОК, не содержащий операции деления, называемый методом непосредственного суммирования модульных значений разрядов позиционного числа.&lt;br /&gt;
&lt;br /&gt;
Смотри [[Алгоритмы перехода от позиционного представления к остаткам|Алгоритмы перехода от позиционного представления к остаткам]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Восстановление позиционного представления числа по его остаткам ==&lt;br /&gt;
&lt;br /&gt;
Система остаточных классов обладает одной особенностью, которую можно отнести к недостаткам этой системы: нельзя визуально определить величину числа, представленного в СОК, а следовательно затруднительно и выполнение таких операций, как сравнение чисел, определение знака числа. Один из путей решения этой проблемы состоит в преобразовании чисел из СОК в позиционную систему счисления. Оценим существующие способы перевода, как традиционные: метод ортогональных базисов; перевод числа в обобщенную позиционную систему (ОПС), так и недавно появившиеся интервальные методы перевода.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Метод ортогональных базисов'''&lt;br /&gt;
&lt;br /&gt;
Метод восстановления числа по его остаткам был найден еще в Китае две тысячи лет назад. Основой этого метода является теорема, названная [[Китайская теорема об остатках| Китайской теоремой об остатках (КТО)]].&lt;br /&gt;
&lt;br /&gt;
Эта теорема лежит в основе метода ортогональных базисов при переводе из системы остаточных классов в позиционную систему счисления.&lt;br /&gt;
&lt;br /&gt;
Смотри [[Метод ортогональных базисов|Метод ортогональных базисов]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Перевод числа из СОК в обобщенную позиционную систему (ОПС)'''&lt;br /&gt;
&lt;br /&gt;
Еще один метод определения величины числа связан с переводом числа из системы остаточных классов в ОПС. Для того, чтобы рассмотреть этот метод, выявим связь между представлением некоторого числа в этих двух системах. &lt;br /&gt;
&lt;br /&gt;
Пусть по-прежнему СОК задается основаниями &amp;lt;math&amp;gt;p_1, p_2, \ldots, p_n&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;A = ({\alpha}_1, {\alpha}_2, \ldots, {\alpha}_n)&amp;lt;/math&amp;gt; - число в этой системе. И пусть &amp;lt;math&amp;gt;p_1, p_2, \ldots, p_n&amp;lt;/math&amp;gt; являются также основаниями ОПС, тогда число &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt; можно представить в виде&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;A = a_n\cdot p_1\cdot p_2\cdot \ldots \cdot p_{n-1} + a_{n-1}\cdot p_1\cdot p_2\cdot \ldots \cdot p_{n-2} + \ldots + a_3\cdot p_1\cdot p_2 + a_2\cdot p_1 + a_1&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
где &amp;lt;math&amp;gt;0\le a_k&amp;lt;p_1\cdot p_2\cdot \ldots \cdot p_{k-1}&amp;lt;/math&amp;gt; – коэффициенты (цифры) ОПС.&lt;br /&gt;
&lt;br /&gt;
Очевидно, что диапазоны чисел, представимых в СОК и ОПС совпадают, т.е. можно говорить о наличии взаимно однозначного соответствия между множеством представлений чисел в СОК и ОПС.&lt;br /&gt;
&lt;br /&gt;
Это равенство можно переписать в следующем виде:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;A = a_1 + p_1(a_2 + p_2(a_3 + \ldots +p_{n-2}(a_{n-1} + p_{n-1} a_n) \ldots ))&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
откуда следует, что цифры ОПС могут быть получены из соотношений:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;a_1 = A - \left[ \frac{A}{p_1}\right] \cdot p_1 = A - A_1\cdot p_1&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;A_1 = \left[ \frac{A}{p_1}\right]&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;a_2 = A_1 - \left[ \frac{A_1}{p_2}\right] \cdot p_2 = A_1 - A_2\cdot p_2&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;A_2 = \left[ \frac{A_1}{p_2}\right]&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\ldots&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;a_n = A_{n-1} - \left[ \frac{A_{n-1}}{p_n}\right] \cdot p_n = A_{n-1} - A_n\cdot p_n&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;A_n = \left[ \frac{A_{n-1}}{p_n}\right]&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Причем при определении цифр &amp;lt;math&amp;gt;a_i&amp;lt;/math&amp;gt; по этим формулам все вычисления можно вести в СОК.&lt;br /&gt;
&lt;br /&gt;
Смотри [[Перевод числа из СОК в обобщенную позиционную систему|Перевод числа из СОК в обобщенную позиционную систему]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Интервальные методы перевода'''&lt;br /&gt;
&lt;br /&gt;
Достаточно эффективными методами перевода чисел из СОК в ПСС являются интервальные методы, основанные на интервальных характеристиках чисел. Одна из таких характеристик – номер интервала.&lt;br /&gt;
&lt;br /&gt;
Смотри [[Интервальные методы перевода|Интервальные методы перевода]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Расширение диапазона представления чисел ==&lt;br /&gt;
&lt;br /&gt;
Расширение системы оснований является одной из основных немодульных операций в СОК. Выполнение этой операции бывает необходимо при выполнении операции деления чисел, при вычислении позиционных характеристик, при обнаружении переполнения при выполнении сложения или умножения чисел.&lt;br /&gt;
&lt;br /&gt;
Задачу расширения системы оснований можно сформулировать следующим образом: найти остаточное представление числа по новому основанию (новым основаниям), если известно представление числа по другим основаниям (остатки от деления на другие числа).&lt;br /&gt;
Один из путей расширения системы оснований состоит в переводе числа в позиционную систему счисления и вычисления остатка от деления на новый модуль. Этот путь не является рациональным с точки зрения числа операций.&lt;br /&gt;
&lt;br /&gt;
Другой метод расширения системы оснований позволяет определить цифру числа по новому основанию, базируясь на таких позиционных характеристиках числа, как ранг числа, след числа. &lt;br /&gt;
&lt;br /&gt;
Смотри [[Расширение диапазона представления чисел|Расширение диапазона представления чисел]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Литература =&lt;/div&gt;</summary>
		<author><name>Isaeva</name></author>	</entry>

	<entry>
		<id>https://vscripts.ru/w/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%BE%D0%BF%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D0%B8</id>
		<title>Модульные операции</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%BE%D0%BF%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D0%B8"/>
				<updated>2015-02-18T09:05:38Z</updated>
		
		<summary type="html">&lt;p&gt;Isaeva: Новая страница: «Возможность применения СОК в вычислительных алгоритмах обусловлено наличием определён…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Возможность применения СОК в вычислительных алгоритмах обусловлено наличием определённого изоморфизма между математическими операциями над целыми числами и соответствующими операциями над системой целых неотрицательных остатков по отдельным модулям. Сложение, умножение, возведение в целую положительную степень любых целых положительных чисел идентичны соответствующим операциям, выполняемым над системой остатков.&lt;br /&gt;
&lt;br /&gt;
Пусть операнды &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;B&amp;lt;/math&amp;gt;, а также результаты операций сложения и умножения &amp;lt;math&amp;gt;A+B&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;A \cdot B&amp;lt;/math&amp;gt; представлены соответственно остатками  &amp;lt;math&amp;gt;{\alpha}_i, {\beta}_i, {\gamma}_i, {\delta}_i&amp;lt;/math&amp;gt; по основаниям &amp;lt;math&amp;gt;p_i (i=1, \ldots, n)&amp;lt;/math&amp;gt;, причём оба числа и результаты находятся в диапазоне &amp;lt;math&amp;gt;[0, P)&amp;lt;/math&amp;gt;, то есть&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;A=({\alpha}_1, {\alpha}_2, \ldots, {\alpha}_n)&amp;lt;/math&amp;gt;,&lt;br /&gt;
:&amp;lt;math&amp;gt;A=({\beta}_1, {\beta}_2, \ldots, {\beta}_n)&amp;lt;/math&amp;gt;,&lt;br /&gt;
:&amp;lt;math&amp;gt;A=({\gamma}_1, {\gamma}_2, \ldots, {\gamma}_n)&amp;lt;/math&amp;gt;,&lt;br /&gt;
:&amp;lt;math&amp;gt;A=({\delta}_1, {\delta}_2, \ldots, {\delta}_n)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
и&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;0 \le A &amp;lt;P, 0 \le B &amp;lt;P, 0 \le A+B &amp;lt;P, 0 \le A\cdot B &amp;lt;P&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;to be continued&amp;gt;&lt;/div&gt;</summary>
		<author><name>Isaeva</name></author>	</entry>

	<entry>
		<id>https://vscripts.ru/w/%D0%9F%D0%B5%D1%80%D0%B5%D0%B2%D0%BE%D0%B4_%D1%87%D0%B8%D1%81%D0%BB%D0%B0_%D0%B8%D0%B7_%D0%A1%D0%9E%D0%9A_%D0%B2_%D0%BE%D0%B1%D0%BE%D0%B1%D1%89%D0%B5%D0%BD%D0%BD%D1%83%D1%8E_%D0%BF%D0%BE%D0%B7%D0%B8%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D1%83%D1%8E_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%83</id>
		<title>Перевод числа из СОК в обобщенную позиционную систему</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%9F%D0%B5%D1%80%D0%B5%D0%B2%D0%BE%D0%B4_%D1%87%D0%B8%D1%81%D0%BB%D0%B0_%D0%B8%D0%B7_%D0%A1%D0%9E%D0%9A_%D0%B2_%D0%BE%D0%B1%D0%BE%D0%B1%D1%89%D0%B5%D0%BD%D0%BD%D1%83%D1%8E_%D0%BF%D0%BE%D0%B7%D0%B8%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D1%83%D1%8E_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%83"/>
				<updated>2015-02-18T08:33:58Z</updated>
		
		<summary type="html">&lt;p&gt;Isaeva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Рассмотрим метод определения величины числа связанный с переводом числа из системы остаточных классов в обобщенную позиционную систему (ОПС). Для этого выявим связь между представлением некоторого числа в этих двух системах. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Алгоритм перевода числа из СОК в обобщенную позиционную систему'''&lt;br /&gt;
&lt;br /&gt;
Пусть СОК задается основаниями &amp;lt;math&amp;gt;p_1, p_2, \ldots, p_n&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;A = ({\alpha}_1, {\alpha}_2, \ldots, {\alpha}_n)&amp;lt;/math&amp;gt; - число в этой системе. И пусть &amp;lt;math&amp;gt;p_1, p_2, \ldots, p_n&amp;lt;/math&amp;gt; являются также основаниями ОПС, тогда число &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt; можно представить в виде&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;A = a_n\cdot p_1\cdot p_2\cdot \ldots \cdot p_{n-1} + a_{n-1}\cdot p_1\cdot p_2\cdot \ldots \cdot p_{n-2} + \ldots + a_3\cdot p_1\cdot p_2 + a_2\cdot p_1 + a_1&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
где &amp;lt;math&amp;gt;0\le a_k&amp;lt;p_1\cdot p_2\cdot \ldots \cdot p_{k-1} (k=1, \ldots, n)&amp;lt;/math&amp;gt; – коэффициенты (цифры) ОПС.&lt;br /&gt;
&lt;br /&gt;
Очевидно, что диапазоны чисел, представимых в СОК и ОПС совпадают, т.е. можно говорить о наличии взаимно однозначного соответствия между множеством представлений чисел в СОК и ОПС.&lt;br /&gt;
&lt;br /&gt;
Предыдущее равенство можно переписать в следующем виде:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;A = a_1 + p_1(a_2 + p_2(a_3 + \ldots +p_{n-2}(a_{n-1} + p_{n-1} a_n) \ldots ))&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
откуда следует, что цифры ОПС могут быть получены из соотношений:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;a_1 = A - \left[ \frac{A}{p_1}\right] \cdot p_1 = A - A_1\cdot p_1&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;A_1 = \left[ \frac{A}{p_1}\right]&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;a_2 = A_1 - \left[ \frac{A_1}{p_2}\right] \cdot p_2 = A_1 - A_2\cdot p_2&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;A_2 = \left[ \frac{A_1}{p_2}\right]&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\ldots&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;a_n = A_{n-1} - \left[ \frac{A_{n-1}}{p_n}\right] \cdot p_n = A_{n-1} - A_n\cdot p_n&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;A_n = \left[ \frac{A_{n-1}}{p_n}\right]&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Причем при определении цифр &amp;lt;math&amp;gt;a_i&amp;lt;/math&amp;gt; по этим формулам все вычисления можно вести в СОК.&lt;br /&gt;
&lt;br /&gt;
Действительно, из формул следует, что &amp;lt;math&amp;gt;a_1 = {|A|}_{p_1}&amp;lt;/math&amp;gt;, т.е. &amp;lt;math&amp;gt;a_1&amp;lt;/math&amp;gt; - первая СОК цифра, или &amp;lt;math&amp;gt;a_1 = {\alpha}_1&amp;lt;/math&amp;gt;. &lt;br /&gt;
Для получения &amp;lt;math&amp;gt;a_1&amp;lt;/math&amp;gt; сперва представим &amp;lt;math&amp;gt;A - a_1&amp;lt;/math&amp;gt; в остаточном коде. Очевидно, что &amp;lt;math&amp;gt;A - a_1&amp;lt;/math&amp;gt; делится на &amp;lt;math&amp;gt;p_1&amp;lt;/math&amp;gt;. Более того, &amp;lt;math&amp;gt;p_1&amp;lt;/math&amp;gt; взаимно просто со всеми другими модулями. Следовательно, для нахождения цифры &amp;lt;math&amp;gt;a_2&amp;lt;/math&amp;gt; может быть использована процедура деления без остатка: &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;a_2 = \left|\frac{A - a_1}{p_1}\right|_{p_2}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Таким путем, с помощью вычитаний и делений в остаточной записи все цифры ОПС могут быть получены. При этом замечено, что&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;a_1 = |A|_{p_1}&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;a_2 = \left|\left[\frac{A}{p_1}\right]\right|_{p_2}&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;a_3 = \left|\left[\frac{A}{p_1\cdot p_2}\right]\right|_{p_3}&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
и, вообще, для &amp;lt;math&amp;gt; i &amp;gt; 1 &amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;a_i = \left|\left[\frac{A}{p_1\cdot p_2 \cdot \ldots \cdot p_{i-1}}\right]\right|_{p_i}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Перевод, осуществляемый согласно описанному алгоритму,содержит всего &amp;lt;math&amp;gt;2 \cdot (n-1)&amp;lt;/math&amp;gt; остаточных арифметических операций вычитания и деления без остатка, где &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; – число модулей системы.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Модификация алгоритма перевода числа из СОК в обобщенную позиционную систему'''&lt;br /&gt;
&lt;br /&gt;
Можно предложить некоторую модификацию алгоритма с заменой операции деления операцией умножения. Для этого предварительно вычисляется &amp;lt;math&amp;gt;\frac{n\cdot (n-1)}{2}&amp;lt;/math&amp;gt; констант &amp;lt;math&amp;gt;\tau_{k,j}&amp;lt;/math&amp;gt;, которые удовлетворяют условию&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\tau_{k,j}\cdot p_k \equiv 1\pmod p_j, 1 \le k &amp;lt; j \le n&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Эти константы можно, например получить из расширенного алгоритма Евклида&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\tau_{k,j}\cdot p_k + \gamma \cdot p_j = HOD (p_k, p_j) = 1&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Здесь следует заметить тот факт, что константы   полностью определяются выбранной системой оснований, поэтому могут быть вычислены заранее и храниться в некоторой таблице. &lt;br /&gt;
&lt;br /&gt;
Если константы &amp;lt;math&amp;gt;\tau_{k,j}&amp;lt;/math&amp;gt; вычислены, то вычисление цифр &amp;lt;math&amp;gt;a_i&amp;lt;/math&amp;gt; ОПС по модифицированному алгоритму может быть переписано в виде:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;a_1 \equiv {\alpha}_1 \pmod {p_1}&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;a_2 \equiv ({\alpha}_2 - a_1) \cdot \tau_{1,2} \pmod {p_2}&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;a_3 \equiv (({\alpha}_3 - a_1) \cdot \tau_{1,3} - a_2) \cdot \tau_{2,3} \pmod {p_3}&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\ldots&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;a_n \equiv (\ldots (({\alpha}_n - a_1) \cdot \tau_{1,n} - a_2) \cdot \tau_{2,n} - \ldots a_{n-1}) \cdot \tau_{n-1,n} \pmod {p_n}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Константы &amp;lt;math&amp;gt;\tau_{k,j}&amp;lt;/math&amp;gt; принято также записывать в виде &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\tau_{k,j} = \left | \frac {1}{p_k} \right | \pmod {p_j} &amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
и называть обратными элементами по умножению для чисел &amp;lt;math&amp;gt;p_k&amp;lt;/math&amp;gt; по модулю &amp;lt;math&amp;gt;p_j&amp;lt;/math&amp;gt; (multiplicative inverse).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Пример'''&lt;br /&gt;
&lt;br /&gt;
Пусть дана система оснований &amp;lt;math&amp;gt;p_1 = 2, p_2 = 3, p_3 = 5, p_4 = 7, p_5 = 11&amp;lt;/math&amp;gt;. Объем диапазона &amp;lt;math&amp;gt;P = 2310&amp;lt;/math&amp;gt;. Переведем число &amp;lt;math&amp;gt;A = (1,2,1,4,7)&amp;lt;/math&amp;gt; в ОПС.&lt;br /&gt;
&lt;br /&gt;
Найдем сначала константы &amp;lt;math&amp;gt;\tau_{k,j}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\tau_{1,2} = \left | \frac{1}{2} \right | \pmod 3 = 2&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;\tau_{1,3} = \left | \frac{1}{2} \right | \pmod 5 = 3&amp;lt;/math&amp;gt;,&lt;br /&gt;
&amp;lt;math&amp;gt;\tau_{1,4} = \left | \frac{1}{2} \right | \pmod 7 = 4&amp;lt;/math&amp;gt;,&lt;br /&gt;
&amp;lt;math&amp;gt;\tau_{1,5} = \left | \frac{1}{2} \right | \pmod {11} = 6&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\tau_{2,3} = \left | \frac{1}{3} \right | \pmod 5 = 2&amp;lt;/math&amp;gt;,&lt;br /&gt;
&amp;lt;math&amp;gt;\tau_{2,4} = \left | \frac{1}{3} \right | \pmod 7 = 5&amp;lt;/math&amp;gt;,&lt;br /&gt;
&amp;lt;math&amp;gt;\tau_{2,5} = \left | \frac{1}{3} \right | \pmod {11} = 4&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\tau_{3,4} = \left | \frac{1}{5} \right | \pmod 7 = 3&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;\tau_{3,5} = \left | \frac{1}{5} \right | \pmod {11} = 9&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\tau_{4,5} = \left | \frac{1}{7} \right | \pmod {11} = 8&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Для удобства запишем константы в виде матрицы:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\left( \begin{array}{ccccc} 0 &amp;amp; 2 &amp;amp; 3 &amp;amp; 4 &amp;amp; 6 \\ 0 &amp;amp; 0 &amp;amp; 2 &amp;amp; 5 &amp;amp; 4 \\ 0 &amp;amp; 0 &amp;amp; 0 &amp;amp; 3 &amp;amp; 9 \\0 &amp;amp; 0 &amp;amp; 0 &amp;amp; 0 &amp;amp; 8 \end{array} \right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Выполнение алгоритма представлено в следующей таблице.&lt;br /&gt;
&lt;br /&gt;
Перевод числа из СОК в ОПС.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \begin{array}{|c|c|c|c|c|c|c|} \hline Operation &amp;amp; p_1=2 &amp;amp; p_2=3 &amp;amp; p_3=5 &amp;amp; p_4=7 &amp;amp; p_5=11 &amp;amp; a_i &lt;br /&gt;
\\ \hline A &amp;amp; 1 &amp;amp; 2 &amp;amp; 1 &amp;amp; 4 &amp;amp; 7 &amp;amp; a_1 = 1 &lt;br /&gt;
\\ - &amp;amp; &amp;amp; &amp;amp; &amp;amp; &amp;amp; &amp;amp; \\ a_1 &amp;amp; 1 &amp;amp; 1 &amp;amp; 1 &amp;amp; 1 &amp;amp; 1 &amp;amp; &lt;br /&gt;
\\ \hline A - a_1 &amp;amp; &amp;amp; 1 &amp;amp; 0 &amp;amp; 3 &amp;amp; 6 &amp;amp; &lt;br /&gt;
\\ \times &amp;amp; &amp;amp; &amp;amp; &amp;amp; &amp;amp; &amp;amp; &lt;br /&gt;
\\ {\tau}_{1,j} &amp;amp; 0 &amp;amp; 2 &amp;amp; 3 &amp;amp; 4 &amp;amp; 6 &amp;amp; &lt;br /&gt;
\\ \hline A_1 &amp;amp; &amp;amp; 2 &amp;amp; 0 &amp;amp; 5 &amp;amp; 3 &amp;amp; a_2 = 2 &lt;br /&gt;
\\ - &amp;amp; &amp;amp; &amp;amp; &amp;amp; &amp;amp; &amp;amp; \\ a_2 &amp;amp; &amp;amp; 2 &amp;amp; 2 &amp;amp; 2 &amp;amp; 2 &amp;amp; &lt;br /&gt;
\\ \hline A_1 - a_2 &amp;amp; &amp;amp; &amp;amp; 3 &amp;amp; 3 &amp;amp; 1 &amp;amp; &lt;br /&gt;
\\ \times &amp;amp; &amp;amp; &amp;amp; &amp;amp; &amp;amp; &amp;amp; &lt;br /&gt;
\\ {\tau}_{2,j} &amp;amp; &amp;amp; 0 &amp;amp; 2 &amp;amp; 5 &amp;amp; 4 &amp;amp; &lt;br /&gt;
\\ \hline A_2 &amp;amp; &amp;amp; &amp;amp; 1 &amp;amp; 1 &amp;amp; 4 &amp;amp; a_3 = 1 &lt;br /&gt;
\\ - &amp;amp; &amp;amp; &amp;amp; &amp;amp; &amp;amp; &amp;amp; \\ a_3 &amp;amp; &amp;amp; &amp;amp; 1 &amp;amp; 1 &amp;amp; 1 &amp;amp; &lt;br /&gt;
\\ \hline A_2 - a_3 &amp;amp; &amp;amp; &amp;amp; &amp;amp; 0 &amp;amp; 3 &amp;amp; &lt;br /&gt;
\\ \times &amp;amp; &amp;amp; &amp;amp; &amp;amp; &amp;amp; &amp;amp; &lt;br /&gt;
\\ {\tau}_{3,j} &amp;amp; &amp;amp; &amp;amp; 0 &amp;amp; 3 &amp;amp; 9 &amp;amp; &lt;br /&gt;
\\ \hline A_3 &amp;amp; &amp;amp; &amp;amp; &amp;amp; 0 &amp;amp; 5 &amp;amp; a_4 = 0 &lt;br /&gt;
\\ - &amp;amp; &amp;amp; &amp;amp; &amp;amp; &amp;amp; &amp;amp; &lt;br /&gt;
\\ a_4 &amp;amp; &amp;amp; &amp;amp; &amp;amp; 0 &amp;amp; 0 &amp;amp; &lt;br /&gt;
\\ \hline A_3 - a_4 &amp;amp; &amp;amp; &amp;amp; &amp;amp; 0 &amp;amp; 5 &amp;amp; &lt;br /&gt;
\\ \times &amp;amp; &amp;amp; &amp;amp; &amp;amp; &amp;amp; &amp;amp; &lt;br /&gt;
\\ {\tau}_{4,j} &amp;amp; &amp;amp; &amp;amp; &amp;amp; 0 &amp;amp; 8 &amp;amp; &lt;br /&gt;
\\ \hline A_4 &amp;amp; &amp;amp; &amp;amp; &amp;amp; &amp;amp; 7 &amp;amp; a_5 = 7 &lt;br /&gt;
\\ \hline \end{array} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
таким образом,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; A = a_5 \cdot p_1 \cdot p_2 \cdot p_3 \cdot p_4 + a_4 \cdot p_1 \cdot p_2 \cdot p_3 + a_3 \cdot p_1 \cdot p_2 + a_2 \cdot p_1 + a_1 = 7 \cdot 2 \cdot 3 \cdot 5 \cdot 7 + 0 \cdot 2 \cdot 3 \cdot 5 + 1 \cdot 2 \cdot 3 + 2 \cdot 2 + 1 = 1481 &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Преимущество рассмотренного метода перед методом ортогональных базисов состоит в том, что все вычисления выполняются в модулярной арифметике, причем в отдельных каналах, соответствующих модулям &amp;lt;math&amp;gt;p_i&amp;lt;/math&amp;gt;, правда, к сожалению, не параллельно.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Алгоритм перевода числа для специальных систем оснований'''&lt;br /&gt;
&lt;br /&gt;
Один из вариантов уменьшения числа операций в рассмотренном алгоритме может быть достигнут путём особого выбора системы оснований. Выберем систему оснований СОК следующим образом:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;p_1, p_2 = p_1+1, p_3 = p_1 \cdot p_2+1, p_4 = p_1 \cdot p_2 \cdot p_3+1, \ldots, p_n  = p_1 \cdot p_2 \cdot p_3 \cdot \ldots \cdot p_{n-1}+1&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Очевидно, что основания такой системы взаимно простые числа. Эта система обладает той особенностью, что &amp;lt;math&amp;gt; p_j \equiv 1 \pmod {p_k} (1 \le k &amp;lt; j \le n) &amp;lt;/math&amp;gt;&lt;br /&gt;
т.е. из сравнений &amp;lt;math&amp;gt; {\tau}_{j,k} \cdot p_j \equiv 1 \pmod {p_k} &amp;lt;/math&amp;gt; получаем, что все константы &amp;lt;math&amp;gt; {\tau}_{j,k} = 1 &amp;lt;/math&amp;gt;. При таком выборе системы оснований алгоритм можно видоизменить следующим образом: вычисления начинают со старших модулей, тогда, т.к. константы &amp;lt;math&amp;gt; {\tau}_{j,k} = 1 &amp;lt;/math&amp;gt;, то в алгоритме отпадает необходимость умножать на  &amp;lt;math&amp;gt; {\tau}_{j,k} &amp;lt;/math&amp;gt;, т.е.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;a_1 \equiv {\alpha}_1 \pmod {{p_1}'}&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;a_2 \equiv {\alpha}_2 - a_1 \pmod {{p_2}'}&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;a_3 \equiv {\alpha}_3 - a_1 - a_2 \pmod {{p_3}'}&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\ldots&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;a_n \equiv {\alpha}_n - a_1 - a_2 - \ldots a_{n-1} \pmod {{p_n}'}&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:где &amp;lt;math&amp;gt; {{p_1}'} &amp;gt; {{p_2}'} &amp;gt; {{p_3}'} &amp;gt; \ldots &amp;gt; {{p_n}'} &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Пример'''&lt;br /&gt;
&lt;br /&gt;
Выберем систему оснований по указанному принципу:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;p_1 = 2, p_2 = p_1+1 = 2+1 = 3, p_3 = p_1 \cdot p_2+1 = 2 \cdot 3 + 1 = 7, p_4 = p_1 \cdot p_2 \cdot p_3+1 = 2 \cdot 3 \cdot 7 + 1 = 43&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Объем диапазона &amp;lt;math&amp;gt;P = 2 \cdot 3 \cdot 7 \cdot 43 = 1806&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Введем новые обозначения &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;{{p_1}'} = p_4 = 43, {{p_2}'} = p_3 = 7, {{p_3}'} = p_2 = 3, {{p_4}'} = p_1 = 2&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Пусть в системе оснований &amp;lt;math&amp;gt;{{p_1}'}, {{p_2}'}, {{p_3}'}, {{p_4}'}&amp;lt;/math&amp;gt; задано число &amp;lt;math&amp;gt;A = (27, 0, 1, 1)&amp;lt;/math&amp;gt;. Переведём его в ОПС с той же системой оснований.&lt;br /&gt;
&lt;br /&gt;
Метод перевода чисел из СОК в ОПС на основе выбора системы оснований&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \begin{array}{|c|c|c|c|c|c|} \hline Operation &amp;amp; {{p_1}'}=43 &amp;amp; {{p_2}'}=7 &amp;amp; {{p_3}'}=3 &amp;amp; {{p_4}'}=2 &amp;amp; a_i &lt;br /&gt;
\\ \hline A &amp;amp; 27 &amp;amp; 0 &amp;amp; 1 &amp;amp; 1 &amp;amp; a_1 = 27 &lt;br /&gt;
\\ - &amp;amp; &amp;amp; &amp;amp; &amp;amp; &amp;amp; &lt;br /&gt;
\\ a_1 &amp;amp; 27 &amp;amp; 6 &amp;amp; 0 &amp;amp; 1 &amp;amp; &lt;br /&gt;
\\ \hline A_1 = A - a_1 &amp;amp; - &amp;amp; 1 &amp;amp; 1 &amp;amp; 0 &amp;amp; a_2 = 1&lt;br /&gt;
\\ - &amp;amp; &amp;amp; &amp;amp; &amp;amp; &amp;amp; &lt;br /&gt;
\\ a_2 &amp;amp; &amp;amp; 1 &amp;amp; 1 &amp;amp; 1 &amp;amp; &lt;br /&gt;
\\ \hline A_2 = A_1 - a_2 &amp;amp; &amp;amp; - &amp;amp; 0 &amp;amp; 1 &amp;amp; a_3 = 0&lt;br /&gt;
\\ - &amp;amp; &amp;amp; &amp;amp; &amp;amp; &amp;amp; &lt;br /&gt;
\\ a_3 &amp;amp; &amp;amp; &amp;amp; 0 &amp;amp; 0 &amp;amp; &lt;br /&gt;
\\ \hline A_3 = A_2 - a_3 &amp;amp; &amp;amp; &amp;amp; - &amp;amp; 1 &amp;amp; a_4 = 1&lt;br /&gt;
\\ \hline \end{array} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
таким образом,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; A = a_4 \cdot {{p_1}'} \cdot {{p_2}'} \cdot {{p_3}'} + a_3 \cdot {{p_1}'} \cdot {{p_2}'} + a_2 \cdot {{p_1}'} + a_1 = 1 \cdot 43 \cdot 7 \cdot 3 + 0 \cdot 43 \cdot 7 + 1 \cdot 43 + 27 = 973 &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Как видно, при указанном выборе системы оснований число операций уменьшается вдвое, т.к. необходимо для осуществления перевода совершить &amp;lt;math&amp;gt;n-1&amp;lt;/math&amp;gt; операцию вычитания, против &amp;lt;math&amp;gt;2 \cdot (n-1)&amp;lt;/math&amp;gt; операций в общем случае. Кроме того отпадает необходимость вычислять и хранить константы &amp;lt;math&amp;gt; {\tau}_{j,k} &amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Похожим свойством обладают системы оснований&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;p_1, p_2 = p_1-1, p_3 = p_1 \cdot p_2-1, p_4 = p_1 \cdot p_2 \cdot p_3-1, \ldots, p_n  = p_1 \cdot p_2 \cdot p_3 \cdot \ldots \cdot p_{n-1}-1&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
для которых все константы &amp;lt;math&amp;gt; {\tau}_{j,k} = -1 (1 \le k &amp;lt;j \le n) &amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Главный недостаток указанных систем - быстрый рост оснований системы, так как &amp;lt;math&amp;gt;p_n  = p_1 \cdot p_2 \cdot p_3 \cdot \ldots \cdot p_{n-1} \pm 1&amp;lt;/math&amp;gt;. Один из способов достижения компромисса - это выбор системы оснований, для которой лишь часть констант &amp;lt;math&amp;gt; {\tau}_{j,k} = \pm 1 &amp;lt;/math&amp;gt;.&lt;/div&gt;</summary>
		<author><name>Isaeva</name></author>	</entry>

	<entry>
		<id>https://vscripts.ru/w/%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BE%D1%81%D1%82%D0%B0%D1%82%D0%BE%D1%87%D0%BD%D1%8B%D1%85_%D0%BA%D0%BB%D0%B0%D1%81%D1%81%D0%BE%D0%B2_-_%D0%B2%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5</id>
		<title>Система остаточных классов - введение</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BE%D1%81%D1%82%D0%B0%D1%82%D0%BE%D1%87%D0%BD%D1%8B%D1%85_%D0%BA%D0%BB%D0%B0%D1%81%D1%81%D0%BE%D0%B2_-_%D0%B2%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5"/>
				<updated>2015-02-12T13:57:38Z</updated>
		
		<summary type="html">&lt;p&gt;Isaeva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Теоретико-числовая база построения системы остаточных классов =&lt;br /&gt;
&lt;br /&gt;
Напомним определение деления с остатком.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Определение''' &lt;br /&gt;
&lt;br /&gt;
Говорят, что целое число &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; делится на натуральное число &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; с остатком, если имеется пара целых чисел &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;, таких, что &amp;lt;math&amp;gt;n = m \cdot q+r&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;0\le r&amp;lt;m&amp;lt;/math&amp;gt;. &lt;br /&gt;
&amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; называется делимым, &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; - делителем, &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; - неполным частным, &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt; - остатком.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Для целых чисел:&lt;br /&gt;
&lt;br /&gt;
'''Определение''' &lt;br /&gt;
&lt;br /&gt;
Говорят, что целое число &amp;lt;math&amp;gt;n \in Z&amp;lt;/math&amp;gt; делится на целое число &amp;lt;math&amp;gt;m \in Z&amp;lt;/math&amp;gt; с остатком, если имеется пара целых чисел &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;, таких, что &amp;lt;math&amp;gt;n = m \cdot q+r&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;0\le r&amp;lt;|m|&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Пример''': &lt;br /&gt;
&lt;br /&gt;
'''48''' при делении на '''5''' даёт остаток '''3''', т.к. &amp;lt;math&amp;gt;48=5\cdot 9+3&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;0\le 3&amp;lt;5&amp;lt;/math&amp;gt;, '''-48''' при делении на '''5''' даёт остаток '''2''', т.к. &amp;lt;math&amp;gt;-48=5\cdot (-10)+2&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;0\le 2&amp;lt;5&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Сравнения и их основные свойства ==&lt;br /&gt;
&lt;br /&gt;
Возьмём произвольное фиксированное натуральное число &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; и будем рассматривать остатки при делении на &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; различных целых чисел.&lt;br /&gt;
&lt;br /&gt;
При рассмотрении свойств этих остатков и проведении операций над ними удобно ввести понятие сравнения по модулю.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Определение''' &lt;br /&gt;
&lt;br /&gt;
Два целых числа &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt; b &amp;lt;/math&amp;gt; называются '''сравнимыми по модулю &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt;''', если их разность &amp;lt;math&amp;gt; a-b &amp;lt;/math&amp;gt; делится без остатка на &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Символически сравнимость записывается в виде формулы ('''сравнения'''):&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;a \equiv b \pmod{m}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Число &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; называется '''модулем''' сравнения.&lt;br /&gt;
&lt;br /&gt;
Эквивалентная формулировка:&lt;br /&gt;
&lt;br /&gt;
'''Определение''' &lt;br /&gt;
&lt;br /&gt;
Целые числа &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt; b &amp;lt;/math&amp;gt; называются '''сравнимыми по модулю &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt;''', если остатки от деления этих чисел на &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; равны.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Отношение сравнимости по модулю &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; обладает свойствами рефлексивности, симметричности и транзитивности, т.е. является отношением эквивалентности.&lt;br /&gt;
&lt;br /&gt;
Отнесём все целые числа, дающие при делении на &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; один и тот же остаток в один класс, поэтому получится &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; различных классов по модулю &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt;.&lt;br /&gt;
Множество всех чисел сравнимых с &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; по модулю &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; называется классом вычетов &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; по модулю &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Подробнее о свойствах сравнений и классах вычетов смотри [[Сравнения и их основные свойства| Сравнения и их основные свойства]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Теорема о делении с остатком. Алгоритм Евклида ==&lt;br /&gt;
&lt;br /&gt;
'''Теорема о делении с остатком'''&lt;br /&gt;
&lt;br /&gt;
Для любых целых &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;b \not= 0&amp;lt;/math&amp;gt;, существует единственный набор целых чисел &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;, что &amp;lt;math&amp;gt;a = bq + r&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;0 \le r &amp;lt; |b|&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;|b|&amp;lt;/math&amp;gt; — модуль числа &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
На этой операции основан алгоритм Евклида нахождения наибольшего общего делителя двух целых чисел.&lt;br /&gt;
&lt;br /&gt;
'''Алгоритм Евклида для целых чисел'''&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; — целые числа, не равные одновременно нулю, и последовательность чисел&lt;br /&gt;
: &amp;lt;math&amp;gt; a &amp;gt; b &amp;gt; r_1 &amp;gt; r_2 &amp;gt; r_3 &amp;gt; r_4 &amp;gt; \cdots &amp;gt;r_n&amp;lt;/math&amp;gt;&lt;br /&gt;
определена тем, что каждое &amp;lt;math&amp;gt;r_k&amp;lt;/math&amp;gt; — это остаток от деления предпредыдущего числа на предыдущее, а предпоследнее делится на последнее нацело, то есть&lt;br /&gt;
: &amp;lt;math&amp;gt;a = bq_0 + r_1&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;b = r_1q_1 + r_2&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;r_1 = r_2q_2 + r_3&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;\cdots&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;r_{k-2} = r_{k-1} q_{k-1} + r_k&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;\cdots&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;r_{n-2} = r_{n-1}q_{n-1}+ r_n&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;r_{n-1} = r_n q_n&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Тогда '''НОД''' &amp;lt;math&amp;gt;(a,b)&amp;lt;/math&amp;gt;, наибольший общий делитель &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt;, равен&lt;br /&gt;
&amp;lt;math&amp;gt;r_n&amp;lt;/math&amp;gt;, последнему ненулевому члену этой последовательности.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Существование''' таких &amp;lt;math&amp;gt;r_1, r_2, ...&amp;lt;/math&amp;gt;, то есть возможность деления с остатком &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; на &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; для любого целого &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и целого &amp;lt;math&amp;gt;b\ne 0&amp;lt;/math&amp;gt;, доказывается индукцией.&lt;br /&gt;
&lt;br /&gt;
'''Корректность''' этого алгоритма вытекает из следующих двух утверждений:&lt;br /&gt;
&lt;br /&gt;
* Пусть &amp;lt;math&amp;gt;a = bq + r&amp;lt;/math&amp;gt;, тогда '''НОД''' &amp;lt;math&amp;gt;(a,b)&amp;lt;/math&amp;gt; = '''НОД''' &amp;lt;math&amp;gt;(b,r)&amp;lt;/math&amp;gt;.&lt;br /&gt;
* '''НОД''' &amp;lt;math&amp;gt;(0,r)&amp;lt;/math&amp;gt; = &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt; для любого ненулевого &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt; (так как 0 делится на любое целое число, кроме нуля).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Смотри [[Теорема о делении с остатком. Алгоритм Евклида|Теорема о делении с остатком. Алгоритм Евклида]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Китайская теорема об остатках ==&lt;br /&gt;
&lt;br /&gt;
Фундаментальным положением, лежащим в основе модулярного представления чисел, является китайская теорема об остатках (Chinese Remainder Theorem - CRT). &lt;br /&gt;
Например, эта теорема гарантирует, что при правильном выборе модулей СОК  &lt;br /&gt;
каждое число из динамического диапазона имеет в СОК единственное представление, &lt;br /&gt;
и по этому представлению можно определить представленное число.&lt;br /&gt;
В своей первоначальной формулировке эта теорема была доказана китайским математиком Сунь-Цзы приблизительно в 100 г. н.э.&lt;br /&gt;
В современной формулировке теорема звучит так:&lt;br /&gt;
&lt;br /&gt;
'''Теорема'''&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;p_1, p_2, \ldots, p_k&amp;lt;/math&amp;gt; - попарно взаимно простые числа, большие 1, и пусть &amp;lt;math&amp;gt;p = p_1 \cdot p_2 \cdot \ldots  \cdot p_k&amp;lt;/math&amp;gt;. Тогда существует единственное неотрицательное решение по модулю &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; следующей системы сравнений:&lt;br /&gt;
: &amp;lt;math&amp;gt;x \equiv a_1 \pmod{p_1}&amp;lt;/math&amp;gt;,&lt;br /&gt;
: &amp;lt;math&amp;gt;x \equiv a_2 \pmod{p_2}&amp;lt;/math&amp;gt;,&lt;br /&gt;
: &amp;lt;math&amp;gt;\ldots&amp;lt;/math&amp;gt;,&lt;br /&gt;
: &amp;lt;math&amp;gt;x \equiv a_k \pmod{p_k}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Другими словами, отображение, которое каждому целому числу &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;0\le x &amp;lt;p&amp;lt;/math&amp;gt;, ставит в соответствие кортеж &amp;lt;math&amp;gt;a_1, a_2,\ldots, a_k&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;x \equiv a_i \pmod{p_i}, i = 1, \ldots k&amp;lt;/math&amp;gt; является биекцией кольца &amp;lt;math&amp;gt;Z_P&amp;lt;/math&amp;gt; на декартово произведение &amp;lt;math&amp;gt;Z_{p_1} \times Z_{p_2} \times \ldots \times Z_{p_k}&amp;lt;/math&amp;gt;  колец &amp;lt;math&amp;gt;Z_{p_1}, Z_{p_2}, \ldots, Z_{p_k}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Подробности и доказательство теоремы смотри [[Китайская теорема об остатках| Китайская теорема об остатках]].&lt;br /&gt;
&lt;br /&gt;
Смотри также [[Описание КТО II|Китайская теорема об остатках(КТО II)]], [[Описание КТО III|Китайская теорема об остатках (КТО III)]].&lt;br /&gt;
&lt;br /&gt;
== Теоремы Эйлера и Ферма, их роль в вычислении мультипликативных обратных элементов по заданному модулю ==&lt;br /&gt;
&lt;br /&gt;
'''Определение'''&lt;br /&gt;
&lt;br /&gt;
Функция Эйлера &amp;lt;math&amp;gt;\varphi(n)&amp;lt;/math&amp;gt; — это количество чисел от &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; до &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt;, взаимно простых с &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Т.е. это количество таких натуральных чисел из отрезка [1; n], наибольший общий делитель (НОД) которых с &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; равен единице.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Tеоремa Эйлера'''&lt;br /&gt;
&lt;br /&gt;
Если &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; взаимно просты, то &amp;lt;math&amp;gt;a^{\varphi(p)} \equiv 1 \pmod p&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;\varphi(n)&amp;lt;/math&amp;gt; - функция Эйлера.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В частном случае, когда &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; простое, теорема Эйлера превращается в так называемую малую теорему Ферма:&lt;br /&gt;
Частным случаем теоремы Эйлера является малая теорема Ферма.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Малая теорема Ферма'''&lt;br /&gt;
&lt;br /&gt;
Если &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; - простое число и &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; - произвольное целое число, не делящееся на &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;, то &amp;lt;math&amp;gt;a^{p-1} \equiv 1 \pmod p &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Смотри [[Функция Эйлера|Функция Эйлера]], [[Вычисление мультипликативных обратных элементов по заданному модулю|Вычисление мультипликативных обратных элементов по заданному модулю]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Числа Мерсенна, Ферма и операции над ними ==&lt;br /&gt;
&lt;br /&gt;
При рассмотрении отдельных классов простых чисел интерес представляет вопрос о простых числах специального вида, например, числа Мерсенна или числа Ферма.&lt;br /&gt;
&lt;br /&gt;
'''Определение'''&lt;br /&gt;
&lt;br /&gt;
'''Числа Мерсенна''' — числа вида &amp;lt;math&amp;gt;M_n = 2^n - 1&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; — натуральное число.&lt;br /&gt;
Названы в честь французского математика Марена Мерсенна.&lt;br /&gt;
&lt;br /&gt;
Иногда числами Мерсенна называют только числа &amp;lt;math&amp;gt;M_n&amp;lt;/math&amp;gt; с нечетными или простыми индексами ''n''. &lt;br /&gt;
&lt;br /&gt;
Множества простых чисел в этих последовательностях совпадают, а потому понятие ''простого числа Мерсенна'' не зависит от того, как именно определяются числа Мерсенна.&lt;br /&gt;
&lt;br /&gt;
При простых значениях n = p число   может оказаться простым, но может быть составным.&lt;br /&gt;
Например, при &amp;lt;math&amp;gt;p = 2, 3, 5, 7, 13, 17, 19&amp;lt;/math&amp;gt; мы получаем простые числа Мерсенна: &amp;lt;math&amp;gt;3, 7, 31, 127, 8191, 131071&amp;lt;/math&amp;gt;, а при &amp;lt;math&amp;gt;p = 11, 23, 29&amp;lt;/math&amp;gt; числа &amp;lt;math&amp;gt;2^p - 1&amp;lt;/math&amp;gt; - составные. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Определение'''&lt;br /&gt;
&lt;br /&gt;
'''Числа Ферма''' — числа вида &amp;lt;math&amp;gt;F_n=2^{2^n}+1&amp;lt;/math&amp;gt;, где ''n'' — неотрицательное целое число. &lt;br /&gt;
&lt;br /&gt;
При &amp;lt;math&amp;gt;n = 0, 1, 2, 3, 4&amp;lt;/math&amp;gt; числа Ферма простые: &amp;lt;math&amp;gt;3, 5, 17, 257, 65537&amp;lt;/math&amp;gt;. Известно, что для &amp;lt;math&amp;gt;5\le n \le 32&amp;lt;/math&amp;gt; числа &amp;lt;math&amp;gt;F_n&amp;lt;/math&amp;gt; являются составными. На 2014 г. не найдено ни одного простого числа такого вида для &amp;lt;math&amp;gt;n&amp;gt;4&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Все числа Мерсенна и Ферма – взаимно простые. Кроме того, для модулей СОК вида &amp;lt;math&amp;gt;M_n = 2^n - 1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;M_n = 2^n + 1&amp;lt;/math&amp;gt; легко реализуется преобразование и арифметические операции. Поэтому эффективно выбирать модули СОК в виде чисел Мерсенна и Ферма. &lt;br /&gt;
&lt;br /&gt;
Смотри [[Числа Мерсенна и Ферма|Числа Мерсенна и Ферма]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Математические модели модулярного представления и параллельной обработки информации =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Определение системы остаточных классов==&lt;br /&gt;
&lt;br /&gt;
Представление чисел в виде набора остатков от деления на выбранные натуральные модули - основания системы называется системой остаточных классов - СОК (residue number system - RNS) или модулярной системой счисления - МСС (modular system).&lt;br /&gt;
&lt;br /&gt;
Смотри [[Система остаточных классов|Система остаточных классов]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Выбор СОК как системы счисления ==&lt;br /&gt;
&lt;br /&gt;
Под системой счисления понимают совокупность символический метод записи чисел, представление чисел с помощью письменных знаков, или, точнее, способ кодирования (представления) элементов некоторой конечной модели действительных чисел словами одного или более алфавитов. &lt;br /&gt;
&lt;br /&gt;
К любой кодовой системе применимы следующие требования:&lt;br /&gt;
&lt;br /&gt;
* возможность представления в данной системе любой величины в рассматриваемом, заранее назначенном диапазоне;&lt;br /&gt;
* единственность представления – любая кодовая комбинация соответствует одному и только одному числу в заданном диапазоне;&lt;br /&gt;
* простота оперирования числами в данной системе счисления.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Системы счисления подразделяются на позиционные, непозиционные и смешанные. ([https://ru.wikipedia.org/wiki/%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D1%81%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F#.D0.9D.D0.B5.D0.BF.D0.BE.D0.B7.D0.B8.D1.86.D0.B8.D0.BE.D0.BD.D0.BD.D1.8B.D0.B5_.D1.81.D0.B8.D1.81.D1.82.D0.B5.D0.BC.D1.8B_.D1.81.D1.87.D0.B8.D1.81.D0.BB.D0.B5.D0.BD.D0.B8.D1.8F Система счисления])&lt;br /&gt;
&lt;br /&gt;
В позиционных системах счисления один и тот же числовой знак (цифра) в записи числа имеет различные значения в зависимости от того места (разряда), где он расположен.  Обычно используется b-ричная система счисления, которая определяется целым числом b&amp;gt;1, называемым основанием системы счисления.  &lt;br /&gt;
&lt;br /&gt;
Смешанная система счисления является обобщением b-ричной системы счисления и также зачастую относится к позиционным системам счисления. Смотри [[Полиадический код|Полиадический код]].&lt;br /&gt;
&lt;br /&gt;
В непозиционных системах счисления величина, которую обозначает цифра, не зависит от её положения в числе. При этом система может накладывать ограничения на положение цифр.&lt;br /&gt;
&lt;br /&gt;
Всякая вычислительная структура тесно связана с системой счисления, в которой она работает. &lt;br /&gt;
&lt;br /&gt;
В обычной позиционной системе счисления (ПСС) значение разряда любого числа, кроме младшего, являющегося результатом двухместной арифметической операции, зависит не только от значения одноимённых операндов, но и от всех младших разрядов, т. е. ПСС обладает строго последовательной структурой. &lt;br /&gt;
Напротив, непозиционные коды с параллельной структурой позволяют реализовать распараллеливание операций на уровне выполнения элементарных арифметических действий. &lt;br /&gt;
&lt;br /&gt;
В качестве такой непозиционной системы удобна система остаточных классов (СОК). &lt;br /&gt;
&lt;br /&gt;
Базовые арифметические операции в СОК делятся на две группы: модульные и немодульные.&lt;br /&gt;
&lt;br /&gt;
* Модульные операции, которые могут быть выполнены параллельно и независимо над отдельными цифрами чисел: сложение, умножение, вычитание без знака.&lt;br /&gt;
&lt;br /&gt;
* Немодульные операции, которые требуют знания величины модулярных чисел в целом: сравнение, вычитание с получением отрицательного результата, контроль переполнения модулярного числа.&lt;br /&gt;
&lt;br /&gt;
Основным достоинством системы остаточных классов является сравнительная простота выполнения модульных операций, недостатком - большая трудоемкость немодульных операций.&lt;br /&gt;
&lt;br /&gt;
Смотри [[Представление числа в системе остаточных классов|Представление числа в системе остаточных классов]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Модульные операции над числами в системе остаточных классов ==&lt;br /&gt;
&lt;br /&gt;
Возможность применения СОК в вычислительных алгоритмах обусловлено наличием определённого изоморфизма между математическими операциями над целыми числами и соответствующими операциями над системой целых неотрицательных остатков по отдельным модулям. Сложение, умножение, возведение в целую положительную степень любых целых положительных чисел идентичны соответствующим операциям, выполняемым над системой остатков. &lt;br /&gt;
&lt;br /&gt;
Смотри [[Модульные операции|Модульные операции]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Основные методы и алгоритмы перехода от позиционного представления к остаткам ==&lt;br /&gt;
&lt;br /&gt;
Обычно исходные данные для вычислений представлены в каком-либо традиционном представлении, двоичном или десятичном. В таком же виде ожидаются результаты вычислений. Отсюда понятна необходимость перевода чисел из позиционного представления в представление СОК (прямое преобразование) и обратно (обратное преобразование). Одной из первых немодульных процедур является прямое преобразование позиционных кодов в код СОК.&lt;br /&gt;
&lt;br /&gt;
Перевод числа в систему остаточных классов можно осуществить непосредственно методом деления, с модулями СОК в качестве делителей. Однако из-за сложности операции деления техническая реализация такого метода неэффективна.&lt;br /&gt;
Поэтому рассматриваются другие методы.&lt;br /&gt;
Например, часто используется метод перевода числа из позиционной системы счисления в СОК, не содержащий операции деления, называемый методом непосредственного суммирования модульных значений разрядов позиционного числа.&lt;br /&gt;
&lt;br /&gt;
Смотри [[Алгоритмы перехода от позиционного представления к остаткам|Алгоритмы перехода от позиционного представления к остаткам]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Восстановление позиционного представления числа по его остаткам ==&lt;br /&gt;
&lt;br /&gt;
Система остаточных классов обладает одной особенностью, которую можно отнести к недостаткам этой системы: нельзя визуально определить величину числа, представленного в СОК, а следовательно затруднительно и выполнение таких операций, как сравнение чисел, определение знака числа. Один из путей решения этой проблемы состоит в преобразовании чисел из СОК в позиционную систему счисления. Оценим существующие способы перевода, как традиционные: метод ортогональных базисов; перевод числа в обобщенную позиционную систему (ОПС), так и недавно появившиеся интервальные методы перевода.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Метод ортогональных базисов'''&lt;br /&gt;
&lt;br /&gt;
Метод восстановления числа по его остаткам был найден еще в Китае две тысячи лет назад. Основой этого метода является теорема, названная [[Китайская теорема об остатках| Китайской теоремой об остатках (КТО)]].&lt;br /&gt;
&lt;br /&gt;
Эта теорема лежит в основе метода ортогональных базисов при переводе из системы остаточных классов в позиционную систему счисления.&lt;br /&gt;
&lt;br /&gt;
Смотри [[Метод ортогональных базисов|Метод ортогональных базисов]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Перевод числа из СОК в обобщенную позиционную систему (ОПС)'''&lt;br /&gt;
&lt;br /&gt;
Еще один метод определения величины числа связан с переводом числа из системы остаточных классов в ОПС. Для того, чтобы рассмотреть этот метод, выявим связь между представлением некоторого числа в этих двух системах. &lt;br /&gt;
&lt;br /&gt;
Пусть по-прежнему СОК задается основаниями &amp;lt;math&amp;gt;p_1, p_2, \ldots, p_n&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;A = ({\alpha}_1, {\alpha}_2, \ldots, {\alpha}_n)&amp;lt;/math&amp;gt; - число в этой системе. И пусть &amp;lt;math&amp;gt;p_1, p_2, \ldots, p_n&amp;lt;/math&amp;gt; являются также основаниями ОПС, тогда число &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt; можно представить в виде&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;A = a_n\cdot p_1\cdot p_2\cdot \ldots \cdot p_{n-1} + a_{n-1}\cdot p_1\cdot p_2\cdot \ldots \cdot p_{n-2} + \ldots + a_3\cdot p_1\cdot p_2 + a_2\cdot p_1 + a_1&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
где &amp;lt;math&amp;gt;0\le a_k&amp;lt;p_1\cdot p_2\cdot \ldots \cdot p_{k-1}&amp;lt;/math&amp;gt; – коэффициенты (цифры) ОПС.&lt;br /&gt;
&lt;br /&gt;
Очевидно, что диапазоны чисел, представимых в СОК и ОПС совпадают, т.е. можно говорить о наличии взаимно однозначного соответствия между множеством представлений чисел в СОК и ОПС.&lt;br /&gt;
&lt;br /&gt;
Это равенство можно переписать в следующем виде:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;A = a_1 + p_1(a_2 + p_2(a_3 + \ldots +p_{n-2}(a_{n-1} + p_{n-1} a_n) \ldots ))&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
откуда следует, что цифры ОПС могут быть получены из соотношений:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;a_1 = A - \left[ \frac{A}{p_1}\right] \cdot p_1 = A - A_1\cdot p_1&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;A_1 = \left[ \frac{A}{p_1}\right]&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;a_2 = A_1 - \left[ \frac{A_1}{p_2}\right] \cdot p_2 = A_1 - A_2\cdot p_2&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;A_2 = \left[ \frac{A_1}{p_2}\right]&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\ldots&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;a_n = A_{n-1} - \left[ \frac{A_{n-1}}{p_n}\right] \cdot p_n = A_{n-1} - A_n\cdot p_n&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;A_n = \left[ \frac{A_{n-1}}{p_n}\right]&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Причем при определении цифр &amp;lt;math&amp;gt;a_i&amp;lt;/math&amp;gt; по этим формулам все вычисления можно вести в СОК.&lt;br /&gt;
&lt;br /&gt;
Смотри [[Перевод числа из СОК в обобщенную позиционную систему|Перевод числа из СОК в обобщенную позиционную систему]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Интервальные методы перевода'''&lt;br /&gt;
&lt;br /&gt;
Достаточно эффективными методами перевода чисел из СОК в ПСС являются интервальные методы, основанные на интервальных характеристиках чисел. Одна из таких характеристик – номер интервала.&lt;br /&gt;
&lt;br /&gt;
Смотри [[Интервальные методы перевода|Интервальные методы перевода]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Расширение диапазона представления чисел ==&lt;br /&gt;
&lt;br /&gt;
Расширение системы оснований является одной из основных немодульных операций в СОК. Выполнение этой операции бывает необходимо при выполнении операции деления чисел, при вычислении позиционных характеристик, при обнаружении переполнения при выполнении сложения или умножения чисел.&lt;br /&gt;
&lt;br /&gt;
Задачу расширения системы оснований можно сформулировать следующим образом: найти остаточное представление числа по новому основанию (новым основаниям), если известно представление числа по другим основаниям остатки от деления на другие числа.&lt;br /&gt;
Один из путей расширения системы оснований состоит в переводе числа в позиционную систему счисления и вычисления остатка от деления на новый модуль. Этот путь не является рациональным с точки зрения числа операций.&lt;br /&gt;
&lt;br /&gt;
Другой метод расширения системы оснований позволяет определить цифру числа по новому основанию, базируясь на таких позиционных характеристиках числа, как ранг числа, след числа. &lt;br /&gt;
&lt;br /&gt;
Смотри [[Расширение диапазона представления чисел|Расширение диапазона представления чисел]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Литература =&lt;/div&gt;</summary>
		<author><name>Isaeva</name></author>	</entry>

	<entry>
		<id>https://vscripts.ru/w/%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BE%D1%81%D1%82%D0%B0%D1%82%D0%BE%D1%87%D0%BD%D1%8B%D1%85_%D0%BA%D0%BB%D0%B0%D1%81%D1%81%D0%BE%D0%B2_-_%D0%B2%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5</id>
		<title>Система остаточных классов - введение</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BE%D1%81%D1%82%D0%B0%D1%82%D0%BE%D1%87%D0%BD%D1%8B%D1%85_%D0%BA%D0%BB%D0%B0%D1%81%D1%81%D0%BE%D0%B2_-_%D0%B2%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5"/>
				<updated>2015-02-12T13:48:12Z</updated>
		
		<summary type="html">&lt;p&gt;Isaeva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Теоретико-числовая база построения системы остаточных классов =&lt;br /&gt;
&lt;br /&gt;
Напомним определение деления с остатком.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Определение''' &lt;br /&gt;
&lt;br /&gt;
Говорят, что целое число &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; делится на натуральное число &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; с остатком, если имеется пара целых чисел &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;, таких, что &amp;lt;math&amp;gt;n = m \cdot q+r&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;0\le r&amp;lt;m&amp;lt;/math&amp;gt;. &lt;br /&gt;
&amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; называется делимым, &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; - делителем, &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; - неполным частным, &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt; - остатком.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Для целых чисел:&lt;br /&gt;
&lt;br /&gt;
'''Определение''' &lt;br /&gt;
&lt;br /&gt;
Говорят, что целое число &amp;lt;math&amp;gt;n \in Z&amp;lt;/math&amp;gt; делится на целое число &amp;lt;math&amp;gt;m \in Z&amp;lt;/math&amp;gt; с остатком, если имеется пара целых чисел &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;, таких, что &amp;lt;math&amp;gt;n = m \cdot q+r&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;0\le r&amp;lt;|m|&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Пример''': &lt;br /&gt;
&lt;br /&gt;
'''48''' при делении на '''5''' даёт остаток '''3''', т.к. &amp;lt;math&amp;gt;48=5\cdot 9+3&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;0\le 3&amp;lt;5&amp;lt;/math&amp;gt;, '''-48''' при делении на '''5''' даёт остаток '''2''', т.к. &amp;lt;math&amp;gt;-48=5\cdot (-10)+2&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;0\le 2&amp;lt;5&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Сравнения и их основные свойства ==&lt;br /&gt;
&lt;br /&gt;
Возьмём произвольное фиксированное натуральное число &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; и будем рассматривать остатки при делении на &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; различных целых чисел.&lt;br /&gt;
&lt;br /&gt;
При рассмотрении свойств этих остатков и проведении операций над ними удобно ввести понятие сравнения по модулю.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Определение''' &lt;br /&gt;
&lt;br /&gt;
Два целых числа &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt; b &amp;lt;/math&amp;gt; называются '''сравнимыми по модулю &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt;''', если их разность &amp;lt;math&amp;gt; a-b &amp;lt;/math&amp;gt; делится без остатка на &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Символически сравнимость записывается в виде формулы ('''сравнения'''):&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;a \equiv b \pmod{m}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Число &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; называется '''модулем''' сравнения.&lt;br /&gt;
&lt;br /&gt;
Эквивалентная формулировка:&lt;br /&gt;
&lt;br /&gt;
'''Определение''' &lt;br /&gt;
&lt;br /&gt;
Целые числа &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt; b &amp;lt;/math&amp;gt; называются '''сравнимыми по модулю &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt;''', если остатки от деления этих чисел на &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; равны.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Отношение сравнимости по модулю &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; обладает свойствами рефлексивности, симметричности и транзитивности, т.е. является отношением эквивалентности.&lt;br /&gt;
&lt;br /&gt;
Отнесём все целые числа, дающие при делении на &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; один и тот же остаток в один класс, поэтому получится &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; различных классов по модулю &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt;.&lt;br /&gt;
Множество всех чисел сравнимых с &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; по модулю &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; называется классом вычетов &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; по модулю &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Подробнее о свойствах сравнений и классах вычетов смотри [[Сравнения и их основные свойства| Сравнения и их основные свойства]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Теорема о делении с остатком. Алгоритм Евклида ==&lt;br /&gt;
&lt;br /&gt;
'''Теорема о делении с остатком'''&lt;br /&gt;
&lt;br /&gt;
Для любых целых &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;b \not= 0&amp;lt;/math&amp;gt;, существует единственный набор целых чисел &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;, что &amp;lt;math&amp;gt;a = bq + r&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;0 \le r &amp;lt; |b|&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;|b|&amp;lt;/math&amp;gt; — модуль числа &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
На этой операции основан алгоритм Евклида нахождения наибольшего общего делителя двух целых чисел.&lt;br /&gt;
&lt;br /&gt;
'''Алгоритм Евклида для целых чисел'''&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; — целые числа, не равные одновременно нулю, и последовательность чисел&lt;br /&gt;
: &amp;lt;math&amp;gt; a &amp;gt; b &amp;gt; r_1 &amp;gt; r_2 &amp;gt; r_3 &amp;gt; r_4 &amp;gt; \cdots &amp;gt;r_n&amp;lt;/math&amp;gt;&lt;br /&gt;
определена тем, что каждое &amp;lt;math&amp;gt;r_k&amp;lt;/math&amp;gt; — это остаток от деления предпредыдущего числа на предыдущее, а предпоследнее делится на последнее нацело, то есть&lt;br /&gt;
: &amp;lt;math&amp;gt;a = bq_0 + r_1&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;b = r_1q_1 + r_2&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;r_1 = r_2q_2 + r_3&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;\cdots&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;r_{k-2} = r_{k-1} q_{k-1} + r_k&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;\cdots&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;r_{n-2} = r_{n-1}q_{n-1}+ r_n&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;r_{n-1} = r_n q_n&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Тогда '''НОД''' &amp;lt;math&amp;gt;(a,b)&amp;lt;/math&amp;gt;, наибольший общий делитель &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt;, равен&lt;br /&gt;
&amp;lt;math&amp;gt;r_n&amp;lt;/math&amp;gt;, последнему ненулевому члену этой последовательности.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Существование''' таких &amp;lt;math&amp;gt;r_1, r_2, ...&amp;lt;/math&amp;gt;, то есть возможность деления с остатком &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; на &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; для любого целого &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и целого &amp;lt;math&amp;gt;b\ne 0&amp;lt;/math&amp;gt;, доказывается индукцией.&lt;br /&gt;
&lt;br /&gt;
'''Корректность''' этого алгоритма вытекает из следующих двух утверждений:&lt;br /&gt;
&lt;br /&gt;
* Пусть &amp;lt;math&amp;gt;a = bq + r&amp;lt;/math&amp;gt;, тогда '''НОД''' &amp;lt;math&amp;gt;(a,b)&amp;lt;/math&amp;gt; = '''НОД''' &amp;lt;math&amp;gt;(b,r)&amp;lt;/math&amp;gt;.&lt;br /&gt;
* '''НОД''' &amp;lt;math&amp;gt;(0,r)&amp;lt;/math&amp;gt; = &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt; для любого ненулевого &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt; (так как 0 делится на любое целое число, кроме нуля).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Смотри [[Теорема о делении с остатком. Алгоритм Евклида|Теорема о делении с остатком. Алгоритм Евклида]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Китайская теорема об остатках ==&lt;br /&gt;
&lt;br /&gt;
Фундаментальным положением, лежащим в основе модулярного представления чисел, является китайская теорема об остатках (Chinese Remainder Theorem - CRT). &lt;br /&gt;
Например, эта теорема гарантирует, что при правильном выборе модулей СОК  &lt;br /&gt;
каждое число из динамического диапазона имеет в СОК единственное представление, &lt;br /&gt;
и по этому представлению можно определить представленное число.&lt;br /&gt;
В своей первоначальной формулировке эта теорема была доказана китайским математиком Сунь-Цзы приблизительно в 100 г. н.э.&lt;br /&gt;
В современной формулировке теорема звучит так:&lt;br /&gt;
&lt;br /&gt;
'''Теорема'''&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;p_1, p_2, \ldots, p_k&amp;lt;/math&amp;gt; - попарно взаимно простые числа, большие 1, и пусть &amp;lt;math&amp;gt;p = p_1 \cdot p_2 \cdot \ldots  \cdot p_k&amp;lt;/math&amp;gt;. Тогда существует единственное неотрицательное решение по модулю &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; следующей системы сравнений:&lt;br /&gt;
: &amp;lt;math&amp;gt;x \equiv a_1 \pmod{p_1}&amp;lt;/math&amp;gt;,&lt;br /&gt;
: &amp;lt;math&amp;gt;x \equiv a_2 \pmod{p_2}&amp;lt;/math&amp;gt;,&lt;br /&gt;
: &amp;lt;math&amp;gt;\ldots&amp;lt;/math&amp;gt;,&lt;br /&gt;
: &amp;lt;math&amp;gt;x \equiv a_k \pmod{p_k}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Другими словами, отображение, которое каждому целому числу &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;0\le x &amp;lt;p&amp;lt;/math&amp;gt;, ставит в соответствие кортеж &amp;lt;math&amp;gt;a_1, a_2,\ldots, a_k&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;x \equiv a_i \pmod{p_i}, i = 1, \ldots k&amp;lt;/math&amp;gt; является биекцией кольца &amp;lt;math&amp;gt;Z_P&amp;lt;/math&amp;gt; на декартово произведение &amp;lt;math&amp;gt;Z_{p_1} \times Z_{p_2} \times \ldots \times Z_{p_k}&amp;lt;/math&amp;gt;  колец &amp;lt;math&amp;gt;Z_{p_1}, Z_{p_2}, \ldots, Z_{p_k}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Подробности и доказательство теоремы смотри [[Китайская теорема об остатках| Китайская теорема об остатках]].&lt;br /&gt;
&lt;br /&gt;
Смотри также [[Описание КТО II|Китайская теорема об остатках(КТО II)]], [[Описание КТО III|Китайская теорема об остатках (КТО III)]].&lt;br /&gt;
&lt;br /&gt;
== Теоремы Эйлера и Ферма, их роль в вычислении мультипликативных обратных элементов по заданному модулю ==&lt;br /&gt;
&lt;br /&gt;
'''Определение'''&lt;br /&gt;
&lt;br /&gt;
Функция Эйлера &amp;lt;math&amp;gt;\varphi(n)&amp;lt;/math&amp;gt; — это количество чисел от &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; до &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt;, взаимно простых с &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Т.е. это количество таких натуральных чисел из отрезка [1; n], наибольший общий делитель (НОД) которых с &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; равен единице.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Tеоремa Эйлера'''&lt;br /&gt;
&lt;br /&gt;
Если &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; взаимно просты, то &amp;lt;math&amp;gt;a^{\varphi(p)} \equiv 1 \pmod p&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;\varphi(n)&amp;lt;/math&amp;gt; - функция Эйлера.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В частном случае, когда &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; простое, теорема Эйлера превращается в так называемую малую теорему Ферма:&lt;br /&gt;
Частным случаем теоремы Эйлера является малая теорема Ферма.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Малая теорема Ферма'''&lt;br /&gt;
&lt;br /&gt;
Если &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; - простое число и &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; - произвольное целое число, не делящееся на &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;, то &amp;lt;math&amp;gt;a^{p-1} \equiv 1 \pmod p &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Смотри [[Функция Эйлера|Функция Эйлера]], [[Вычисление мультипликативных обратных элементов по заданному модулю|Вычисление мультипликативных обратных элементов по заданному модулю]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Числа Мерсенна, Ферма и операции над ними ==&lt;br /&gt;
&lt;br /&gt;
При рассмотрении отдельных классов простых чисел интерес представляет вопрос о простых числах специального вида, например, числа Мерсенна или числа Ферма.&lt;br /&gt;
&lt;br /&gt;
'''Определение'''&lt;br /&gt;
&lt;br /&gt;
'''Числа Мерсенна''' — числа вида &amp;lt;math&amp;gt;M_n = 2^n - 1&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; — натуральное число.&lt;br /&gt;
Названы в честь французского математика Марена Мерсенна.&lt;br /&gt;
&lt;br /&gt;
Иногда числами Мерсенна называют только числа &amp;lt;math&amp;gt;M_n&amp;lt;/math&amp;gt; с нечетными или простыми индексами ''n''. &lt;br /&gt;
&lt;br /&gt;
Множества простых чисел в этих последовательностях совпадают, а потому понятие ''простого числа Мерсенна'' не зависит от того, как именно определяются числа Мерсенна.&lt;br /&gt;
&lt;br /&gt;
При простых значениях n = p число   может оказаться простым, но может быть составным.&lt;br /&gt;
Например, при &amp;lt;math&amp;gt;p = 2, 3, 5, 7, 13, 17, 19&amp;lt;/math&amp;gt; мы получаем простые числа Мерсенна: &amp;lt;math&amp;gt;3, 7, 31, 127, 8191, 131071&amp;lt;/math&amp;gt;, а при &amp;lt;math&amp;gt;p = 11, 23, 29&amp;lt;/math&amp;gt; числа &amp;lt;math&amp;gt;2^p - 1&amp;lt;/math&amp;gt; - составные. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Определение'''&lt;br /&gt;
&lt;br /&gt;
'''Числа Ферма''' — числа вида &amp;lt;math&amp;gt;F_n=2^{2^n}+1&amp;lt;/math&amp;gt;, где ''n'' — неотрицательное целое число. &lt;br /&gt;
&lt;br /&gt;
При &amp;lt;math&amp;gt;n = 0, 1, 2, 3, 4&amp;lt;/math&amp;gt; числа Ферма простые: &amp;lt;math&amp;gt;3, 5, 17, 257, 65537&amp;lt;/math&amp;gt;. Известно, что для &amp;lt;math&amp;gt;5\le n \le 32&amp;lt;/math&amp;gt; числа &amp;lt;math&amp;gt;F_n&amp;lt;/math&amp;gt; являются составными. На 2014 г. не найдено ни одного простого числа такого вида для &amp;lt;math&amp;gt;n&amp;gt;4&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Все числа Мерсенна и Ферма – взаимно простые. Кроме того, для модулей СОК вида &amp;lt;math&amp;gt;M_n = 2^n - 1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;M_n = 2^n + 1&amp;lt;/math&amp;gt; легко реализуется преобразование и арифметические операции. Поэтому эффективно выбирать модули СОК в виде чисел Мерсенна и Ферма. &lt;br /&gt;
&lt;br /&gt;
Смотри [[Числа Мерсенна и Ферма|Числа Мерсенна и Ферма]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Математические модели модулярного представления и параллельной обработки информации =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Определение системы остаточных классов==&lt;br /&gt;
&lt;br /&gt;
Представление чисел в виде набора остатков от деления на выбранные натуральные модули - основания системы называется системой остаточных классов - СОК (residue number system - RNS) или модулярной системой счисления - МСС (modular system).&lt;br /&gt;
&lt;br /&gt;
Смотри [[Система остаточных классов|Система остаточных классов]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Выбор системы счисления ==&lt;br /&gt;
&lt;br /&gt;
Под системой счисления понимают совокупность символический метод записи чисел, представление чисел с помощью письменных знаков, или, точнее, способ кодирования (представления) элементов некоторой конечной модели действительных чисел словами одного или более алфавитов. &lt;br /&gt;
&lt;br /&gt;
К любой кодовой системе применимы следующие требования:&lt;br /&gt;
&lt;br /&gt;
* возможность представления в данной системе любой величины в рассматриваемом, заранее назначенном диапазоне;&lt;br /&gt;
* единственность представления – любая кодовая комбинация соответствует одному и только одному числу в заданном диапазоне;&lt;br /&gt;
* простота оперирования числами в данной системе счисления.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Системы счисления подразделяются на позиционные, непозиционные и смешанные. ([https://ru.wikipedia.org/wiki/%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D1%81%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F#.D0.9D.D0.B5.D0.BF.D0.BE.D0.B7.D0.B8.D1.86.D0.B8.D0.BE.D0.BD.D0.BD.D1.8B.D0.B5_.D1.81.D0.B8.D1.81.D1.82.D0.B5.D0.BC.D1.8B_.D1.81.D1.87.D0.B8.D1.81.D0.BB.D0.B5.D0.BD.D0.B8.D1.8F Система счисления])&lt;br /&gt;
&lt;br /&gt;
В позиционных системах счисления один и тот же числовой знак (цифра) в записи числа имеет различные значения в зависимости от того места (разряда), где он расположен.  Обычно используется b-ричная система счисления, которая определяется целым числом b&amp;gt;1, называемым основанием системы счисления.  &lt;br /&gt;
&lt;br /&gt;
Смешанная система счисления является обобщением b-ричной системы счисления и также зачастую относится к позиционным системам счисления. Смотри [[Полиадический код|Полиадический код]].&lt;br /&gt;
&lt;br /&gt;
В непозиционных системах счисления величина, которую обозначает цифра, не зависит от её положения в числе. При этом система может накладывать ограничения на положение цифр.&lt;br /&gt;
&lt;br /&gt;
Всякая вычислительная структура тесно связана с системой счисления, в которой она работает. &lt;br /&gt;
&lt;br /&gt;
В обычной позиционной системе счисления (ПСС) значение разряда любого числа, кроме младшего, являющегося результатом двухместной арифметической операции, зависит не только от значения одноимённых операндов, но и от всех младших разрядов, т. е. ПСС обладает строго последовательной структурой. &lt;br /&gt;
Напротив, непозиционные коды с параллельной структурой позволяют реализовать распараллеливание операций на уровне выполнения элементарных арифметических действий. &lt;br /&gt;
&lt;br /&gt;
В качестве такой непозиционной системы удобна система остаточных классов. &lt;br /&gt;
&lt;br /&gt;
Основным достоинством системы остаточных классов является сравнительная простота выполнения модульных операций (сложения, вычитания, умножения), недостатком - большая трудоемкость операций, которые требуют знания всего числа в целом, называемых немодульными (например, сравнение чисел).&lt;br /&gt;
&lt;br /&gt;
Смотри [[Представление числа в системе остаточных классов|Представление числа в системе остаточных классов]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Модульные операции над числами в системе остаточных классов ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Смотри [[Модульные операции|Модульные операции]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Основные методы и алгоритмы перехода от позиционного представления к остаткам ==&lt;br /&gt;
&lt;br /&gt;
Обычно исходные данные для вычислений представлены в каком-либо традиционном представлении, двоичном или десятичном. В таком же виде ожидаются результаты вычислений. Отсюда понятна необходимость перевода чисел из позиционного представления в представление СОК (прямое преобразование) и обратно (обратное преобразование). Одной из первых немодульных процедур является прямое преобразование позиционных кодов в код СОК.&lt;br /&gt;
&lt;br /&gt;
Перевод числа в систему остаточных классов можно осуществить непосредственно методом деления, с модулями СОК в качестве делителей. Однако из-за сложности операции деления техническая реализация такого метода неэффективна.&lt;br /&gt;
Поэтому рассматриваются другие методы.&lt;br /&gt;
Например, часто используется метод перевода числа из позиционной системы счисления в СОК, не содержащий операции деления, называемый методом непосредственного суммирования модульных значений разрядов позиционного числа.&lt;br /&gt;
&lt;br /&gt;
Смотри [[Алгоритмы перехода от позиционного представления к остаткам|Алгоритмы перехода от позиционного представления к остаткам]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Восстановление позиционного представления числа по его остаткам ==&lt;br /&gt;
&lt;br /&gt;
Система остаточных классов обладает одной особенностью, которую можно отнести к недостаткам этой системы: нельзя визуально определить величину числа, представленного в СОК, а следовательно затруднительно и выполнение таких операций, как сравнение чисел, определение знака числа. Один из путей решения этой проблемы состоит в преобразовании чисел из СОК в позиционную систему счисления. Оценим существующие способы перевода, как традиционные: метод ортогональных базисов; перевод числа в обобщенную позиционную систему (ОПС), так и недавно появившиеся интервальные методы перевода.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Метод ортогональных базисов'''&lt;br /&gt;
&lt;br /&gt;
Метод восстановления числа по его остаткам был найден еще в Китае две тысячи лет назад. Основой этого метода является теорема, названная [[Китайская теорема об остатках| Китайской теоремой об остатках (КТО)]].&lt;br /&gt;
&lt;br /&gt;
Эта теорема лежит в основе метода ортогональных базисов при переводе из системы остаточных классов в позиционную систему счисления.&lt;br /&gt;
&lt;br /&gt;
Смотри [[Метод ортогональных базисов|Метод ортогональных базисов]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Перевод числа из СОК в обобщенную позиционную систему (ОПС)'''&lt;br /&gt;
&lt;br /&gt;
Еще один метод определения величины числа связан с переводом числа из системы остаточных классов в ОПС. Для того, чтобы рассмотреть этот метод, выявим связь между представлением некоторого числа в этих двух системах. &lt;br /&gt;
&lt;br /&gt;
Пусть по-прежнему СОК задается основаниями &amp;lt;math&amp;gt;p_1, p_2, \ldots, p_n&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;A = ({\alpha}_1, {\alpha}_2, \ldots, {\alpha}_n)&amp;lt;/math&amp;gt; - число в этой системе. И пусть &amp;lt;math&amp;gt;p_1, p_2, \ldots, p_n&amp;lt;/math&amp;gt; являются также основаниями ОПС, тогда число &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt; можно представить в виде&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;A = a_n\cdot p_1\cdot p_2\cdot \ldots \cdot p_{n-1} + a_{n-1}\cdot p_1\cdot p_2\cdot \ldots \cdot p_{n-2} + \ldots + a_3\cdot p_1\cdot p_2 + a_2\cdot p_1 + a_1&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
где &amp;lt;math&amp;gt;0\le a_k&amp;lt;p_1\cdot p_2\cdot \ldots \cdot p_{k-1}&amp;lt;/math&amp;gt; – коэффициенты (цифры) ОПС.&lt;br /&gt;
&lt;br /&gt;
Очевидно, что диапазоны чисел, представимых в СОК и ОПС совпадают, т.е. можно говорить о наличии взаимно однозначного соответствия между множеством представлений чисел в СОК и ОПС.&lt;br /&gt;
&lt;br /&gt;
Это равенство можно переписать в следующем виде:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;A = a_1 + p_1(a_2 + p_2(a_3 + \ldots +p_{n-2}(a_{n-1} + p_{n-1} a_n) \ldots ))&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
откуда следует, что цифры ОПС могут быть получены из соотношений:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;a_1 = A - \left[ \frac{A}{p_1}\right] \cdot p_1 = A - A_1\cdot p_1&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;A_1 = \left[ \frac{A}{p_1}\right]&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;a_2 = A_1 - \left[ \frac{A_1}{p_2}\right] \cdot p_2 = A_1 - A_2\cdot p_2&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;A_2 = \left[ \frac{A_1}{p_2}\right]&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\ldots&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;a_n = A_{n-1} - \left[ \frac{A_{n-1}}{p_n}\right] \cdot p_n = A_{n-1} - A_n\cdot p_n&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;A_n = \left[ \frac{A_{n-1}}{p_n}\right]&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Причем при определении цифр &amp;lt;math&amp;gt;a_i&amp;lt;/math&amp;gt; по этим формулам все вычисления можно вести в СОК.&lt;br /&gt;
&lt;br /&gt;
Смотри [[Перевод числа из СОК в обобщенную позиционную систему|Перевод числа из СОК в обобщенную позиционную систему]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Интервальные методы перевода'''&lt;br /&gt;
&lt;br /&gt;
Достаточно эффективными методами перевода чисел из СОК в ПСС являются интервальные методы, основанные на интервальных характеристиках чисел. Одна из таких характеристик – номер интервала.&lt;br /&gt;
&lt;br /&gt;
Смотри [[Интервальные методы перевода|Интервальные методы перевода]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Расширение диапазона представления чисел ==&lt;br /&gt;
&lt;br /&gt;
Расширение системы оснований является одной из основных немодульных операций в СОК. Выполнение этой операции бывает необходимо при выполнении операции деления чисел, при вычислении позиционных характеристик, при обнаружении переполнения при выполнении сложения или умножения чисел.&lt;br /&gt;
&lt;br /&gt;
Задачу расширения системы оснований можно сформулировать следующим образом: найти остаточное представление числа по новому основанию (новым основаниям), если известно представление числа по другим основаниям остатки от деления на другие числа.&lt;br /&gt;
Один из путей расширения системы оснований состоит в переводе числа в позиционную систему счисления и вычисления остатка от деления на новый модуль. Этот путь не является рациональным с точки зрения числа операций.&lt;br /&gt;
&lt;br /&gt;
Другой метод расширения системы оснований позволяет определить цифру числа по новому основанию, базируясь на таких позиционных характеристиках числа, как ранг числа, след числа. &lt;br /&gt;
&lt;br /&gt;
Смотри [[Расширение диапазона представления чисел|Расширение диапазона представления чисел]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Литература =&lt;/div&gt;</summary>
		<author><name>Isaeva</name></author>	</entry>

	<entry>
		<id>https://vscripts.ru/w/%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BE%D1%81%D1%82%D0%B0%D1%82%D0%BE%D1%87%D0%BD%D1%8B%D1%85_%D0%BA%D0%BB%D0%B0%D1%81%D1%81%D0%BE%D0%B2_-_%D0%B2%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5</id>
		<title>Система остаточных классов - введение</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BE%D1%81%D1%82%D0%B0%D1%82%D0%BE%D1%87%D0%BD%D1%8B%D1%85_%D0%BA%D0%BB%D0%B0%D1%81%D1%81%D0%BE%D0%B2_-_%D0%B2%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5"/>
				<updated>2015-02-12T13:13:03Z</updated>
		
		<summary type="html">&lt;p&gt;Isaeva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Теоретико-числовая база построения системы остаточных классов =&lt;br /&gt;
&lt;br /&gt;
Напомним определение деления с остатком.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Определение''' &lt;br /&gt;
&lt;br /&gt;
Говорят, что целое число &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; делится на натуральное число &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; с остатком, если имеется пара целых чисел &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;, таких, что &amp;lt;math&amp;gt;n = m \cdot q+r&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;0\le r&amp;lt;m&amp;lt;/math&amp;gt;. &lt;br /&gt;
&amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; называется делимым, &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; - делителем, &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; - неполным частным, &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt; - остатком.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Для целых чисел:&lt;br /&gt;
&lt;br /&gt;
'''Определение''' &lt;br /&gt;
&lt;br /&gt;
Говорят, что целое число &amp;lt;math&amp;gt;n \in Z&amp;lt;/math&amp;gt; делится на целое число &amp;lt;math&amp;gt;m \in Z&amp;lt;/math&amp;gt; с остатком, если имеется пара целых чисел &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;, таких, что &amp;lt;math&amp;gt;n = m \cdot q+r&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;0\le r&amp;lt;|m|&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Пример''': &lt;br /&gt;
&lt;br /&gt;
'''48''' при делении на '''5''' даёт остаток '''3''', т.к. &amp;lt;math&amp;gt;48=5\cdot 9+3&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;0\le 3&amp;lt;5&amp;lt;/math&amp;gt;, '''-48''' при делении на '''5''' даёт остаток '''2''', т.к. &amp;lt;math&amp;gt;-48=5\cdot (-10)+2&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;0\le 2&amp;lt;5&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Сравнения и их основные свойства ==&lt;br /&gt;
&lt;br /&gt;
Возьмём произвольное фиксированное натуральное число &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; и будем рассматривать остатки при делении на &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; различных целых чисел.&lt;br /&gt;
&lt;br /&gt;
При рассмотрении свойств этих остатков и проведении операций над ними удобно ввести понятие сравнения по модулю.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Определение''' &lt;br /&gt;
&lt;br /&gt;
Два целых числа &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt; b &amp;lt;/math&amp;gt; называются '''сравнимыми по модулю &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt;''', если их разность &amp;lt;math&amp;gt; a-b &amp;lt;/math&amp;gt; делится без остатка на &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Символически сравнимость записывается в виде формулы ('''сравнения'''):&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;a \equiv b \pmod{m}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Число &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; называется '''модулем''' сравнения.&lt;br /&gt;
&lt;br /&gt;
Эквивалентная формулировка:&lt;br /&gt;
&lt;br /&gt;
'''Определение''' &lt;br /&gt;
&lt;br /&gt;
Целые числа &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt; b &amp;lt;/math&amp;gt; называются '''сравнимыми по модулю &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt;''', если остатки от деления этих чисел на &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; равны.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Отношение сравнимости по модулю &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; обладает свойствами рефлексивности, симметричности и транзитивности, т.е. является отношением эквивалентности.&lt;br /&gt;
&lt;br /&gt;
Отнесём все целые числа, дающие при делении на &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; один и тот же остаток в один класс, поэтому получится &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; различных классов по модулю &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt;.&lt;br /&gt;
Множество всех чисел сравнимых с &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; по модулю &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; называется классом вычетов &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; по модулю &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Подробнее о свойствах сравнений и классах вычетов смотри [[Сравнения и их основные свойства| Сравнения и их основные свойства]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Теорема о делении с остатком. Алгоритм Евклида ==&lt;br /&gt;
&lt;br /&gt;
'''Теорема о делении с остатком'''&lt;br /&gt;
&lt;br /&gt;
Для любых целых &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;b \not= 0&amp;lt;/math&amp;gt;, существует единственный набор целых чисел &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;, что &amp;lt;math&amp;gt;a = bq + r&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;0 \le r &amp;lt; |b|&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;|b|&amp;lt;/math&amp;gt; — модуль числа &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
На этой операции основан алгоритм Евклида нахождения наибольшего общего делителя двух целых чисел.&lt;br /&gt;
&lt;br /&gt;
'''Алгоритм Евклида для целых чисел'''&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; — целые числа, не равные одновременно нулю, и последовательность чисел&lt;br /&gt;
: &amp;lt;math&amp;gt; a &amp;gt; b &amp;gt; r_1 &amp;gt; r_2 &amp;gt; r_3 &amp;gt; r_4 &amp;gt; \cdots &amp;gt;r_n&amp;lt;/math&amp;gt;&lt;br /&gt;
определена тем, что каждое &amp;lt;math&amp;gt;r_k&amp;lt;/math&amp;gt; — это остаток от деления предпредыдущего числа на предыдущее, а предпоследнее делится на последнее нацело, то есть&lt;br /&gt;
: &amp;lt;math&amp;gt;a = bq_0 + r_1&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;b = r_1q_1 + r_2&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;r_1 = r_2q_2 + r_3&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;\cdots&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;r_{k-2} = r_{k-1} q_{k-1} + r_k&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;\cdots&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;r_{n-2} = r_{n-1}q_{n-1}+ r_n&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;r_{n-1} = r_n q_n&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Тогда '''НОД''' &amp;lt;math&amp;gt;(a,b)&amp;lt;/math&amp;gt;, наибольший общий делитель &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt;, равен&lt;br /&gt;
&amp;lt;math&amp;gt;r_n&amp;lt;/math&amp;gt;, последнему ненулевому члену этой последовательности.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Существование''' таких &amp;lt;math&amp;gt;r_1, r_2, ...&amp;lt;/math&amp;gt;, то есть возможность деления с остатком &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; на &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; для любого целого &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и целого &amp;lt;math&amp;gt;b\ne 0&amp;lt;/math&amp;gt;, доказывается индукцией.&lt;br /&gt;
&lt;br /&gt;
'''Корректность''' этого алгоритма вытекает из следующих двух утверждений:&lt;br /&gt;
&lt;br /&gt;
* Пусть &amp;lt;math&amp;gt;a = bq + r&amp;lt;/math&amp;gt;, тогда '''НОД''' &amp;lt;math&amp;gt;(a,b)&amp;lt;/math&amp;gt; = '''НОД''' &amp;lt;math&amp;gt;(b,r)&amp;lt;/math&amp;gt;.&lt;br /&gt;
* '''НОД''' &amp;lt;math&amp;gt;(0,r)&amp;lt;/math&amp;gt; = &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt; для любого ненулевого &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt; (так как 0 делится на любое целое число, кроме нуля).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Смотри [[Теорема о делении с остатком. Алгоритм Евклида|Теорема о делении с остатком. Алгоритм Евклида]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Китайская теорема об остатках ==&lt;br /&gt;
&lt;br /&gt;
Фундаментальным положением, лежащим в основе модулярного представления чисел, является китайская теорема об остатках (Chinese Remainder Theorem - CRT). &lt;br /&gt;
Например, эта теорема гарантирует, что при правильном выборе модулей СОК  &lt;br /&gt;
каждое число из динамического диапазона имеет в СОК единственное представление, &lt;br /&gt;
и по этому представлению можно определить представленное число.&lt;br /&gt;
В своей первоначальной формулировке эта теорема была доказана китайским математиком Сунь-Цзы приблизительно в 100 г. н.э.&lt;br /&gt;
В современной формулировке теорема звучит так:&lt;br /&gt;
&lt;br /&gt;
'''Теорема'''&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;p_1, p_2, \ldots, p_k&amp;lt;/math&amp;gt; - попарно взаимно простые числа, большие 1, и пусть &amp;lt;math&amp;gt;p = p_1 \cdot p_2 \cdot \ldots  \cdot p_k&amp;lt;/math&amp;gt;. Тогда существует единственное неотрицательное решение по модулю &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; следующей системы сравнений:&lt;br /&gt;
: &amp;lt;math&amp;gt;x \equiv a_1 \pmod{p_1}&amp;lt;/math&amp;gt;,&lt;br /&gt;
: &amp;lt;math&amp;gt;x \equiv a_2 \pmod{p_2}&amp;lt;/math&amp;gt;,&lt;br /&gt;
: &amp;lt;math&amp;gt;\ldots&amp;lt;/math&amp;gt;,&lt;br /&gt;
: &amp;lt;math&amp;gt;x \equiv a_k \pmod{p_k}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Другими словами, отображение, которое каждому целому числу &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;0\le x &amp;lt;p&amp;lt;/math&amp;gt;, ставит в соответствие кортеж &amp;lt;math&amp;gt;a_1, a_2,\ldots, a_k&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;x \equiv a_i \pmod{p_i}, i = 1, \ldots k&amp;lt;/math&amp;gt; является биекцией кольца &amp;lt;math&amp;gt;Z_P&amp;lt;/math&amp;gt; на декартово произведение &amp;lt;math&amp;gt;Z_{p_1} \times Z_{p_2} \times \ldots \times Z_{p_k}&amp;lt;/math&amp;gt;  колец &amp;lt;math&amp;gt;Z_{p_1}, Z_{p_2}, \ldots, Z_{p_k}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Подробности и доказательство теоремы смотри [[Китайская теорема об остатках| Китайская теорема об остатках]].&lt;br /&gt;
&lt;br /&gt;
Смотри также [[Описание КТО II|Китайская теорема об остатках(КТО II)]], [[Описание КТО III|Китайская теорема об остатках (КТО III)]].&lt;br /&gt;
&lt;br /&gt;
== Теоремы Эйлера и Ферма, их роль в вычислении мультипликативных обратных элементов по заданному модулю ==&lt;br /&gt;
&lt;br /&gt;
'''Определение'''&lt;br /&gt;
&lt;br /&gt;
Функция Эйлера &amp;lt;math&amp;gt;\varphi(n)&amp;lt;/math&amp;gt; — это количество чисел от &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; до &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt;, взаимно простых с &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Т.е. это количество таких натуральных чисел из отрезка [1; n], наибольший общий делитель (НОД) которых с &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; равен единице.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Tеоремa Эйлера'''&lt;br /&gt;
&lt;br /&gt;
Если &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; взаимно просты, то &amp;lt;math&amp;gt;a^{\varphi(p)} \equiv 1 \pmod p&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;\varphi(n)&amp;lt;/math&amp;gt; - функция Эйлера.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В частном случае, когда &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; простое, теорема Эйлера превращается в так называемую малую теорему Ферма:&lt;br /&gt;
Частным случаем теоремы Эйлера является малая теорема Ферма.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Малая теорема Ферма'''&lt;br /&gt;
&lt;br /&gt;
Если &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; - простое число и &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; - произвольное целое число, не делящееся на &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;, то &amp;lt;math&amp;gt;a^{p-1} \equiv 1 \pmod p &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Смотри [[Функция Эйлера|Функция Эйлера]], [[Вычисление мультипликативных обратных элементов по заданному модулю|Вычисление мультипликативных обратных элементов по заданному модулю]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Числа Мерсенна, Ферма и операции над ними ==&lt;br /&gt;
&lt;br /&gt;
При рассмотрении отдельных классов простых чисел интерес представляет вопрос о простых числах специального вида, например, числа Мерсенна или числа Ферма.&lt;br /&gt;
&lt;br /&gt;
'''Определение'''&lt;br /&gt;
&lt;br /&gt;
'''Числа Мерсенна''' — числа вида &amp;lt;math&amp;gt;M_n = 2^n - 1&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; — натуральное число.&lt;br /&gt;
Названы в честь французского математика Марена Мерсенна.&lt;br /&gt;
&lt;br /&gt;
Иногда числами Мерсенна называют только числа &amp;lt;math&amp;gt;M_n&amp;lt;/math&amp;gt; с нечетными или простыми индексами ''n''. &lt;br /&gt;
&lt;br /&gt;
Множества простых чисел в этих последовательностях совпадают, а потому понятие ''простого числа Мерсенна'' не зависит от того, как именно определяются числа Мерсенна.&lt;br /&gt;
&lt;br /&gt;
При простых значениях n = p число   может оказаться простым, но может быть составным.&lt;br /&gt;
Например, при &amp;lt;math&amp;gt;p = 2, 3, 5, 7, 13, 17, 19&amp;lt;/math&amp;gt; мы получаем простые числа Мерсенна: &amp;lt;math&amp;gt;3, 7, 31, 127, 8191, 131071&amp;lt;/math&amp;gt;, а при &amp;lt;math&amp;gt;p = 11, 23, 29&amp;lt;/math&amp;gt; числа &amp;lt;math&amp;gt;2^p - 1&amp;lt;/math&amp;gt; - составные. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Определение'''&lt;br /&gt;
&lt;br /&gt;
'''Числа Ферма''' — числа вида &amp;lt;math&amp;gt;F_n=2^{2^n}+1&amp;lt;/math&amp;gt;, где ''n'' — неотрицательное целое число. &lt;br /&gt;
&lt;br /&gt;
При &amp;lt;math&amp;gt;n = 0, 1, 2, 3, 4&amp;lt;/math&amp;gt; числа Ферма простые: &amp;lt;math&amp;gt;3, 5, 17, 257, 65537&amp;lt;/math&amp;gt;. Известно, что для &amp;lt;math&amp;gt;5\le n \le 32&amp;lt;/math&amp;gt; числа &amp;lt;math&amp;gt;F_n&amp;lt;/math&amp;gt; являются составными. На 2014 г. не найдено ни одного простого числа такого вида для &amp;lt;math&amp;gt;n&amp;gt;4&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Все числа Мерсенна и Ферма – взаимно простые. Кроме того, для модулей СОК вида &amp;lt;math&amp;gt;M_n = 2^n - 1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;M_n = 2^n + 1&amp;lt;/math&amp;gt; легко реализуется преобразование и арифметические операции. Поэтому эффективно выбирать модули СОК в виде чисел Мерсенна и Ферма. &lt;br /&gt;
&lt;br /&gt;
Смотри [[Числа Мерсенна и Ферма|Числа Мерсенна и Ферма]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Математические модели модулярного представления и параллельной обработки информации =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Определение системы остаточных классов==&lt;br /&gt;
&lt;br /&gt;
Представление чисел в виде набора остатков от деления на выбранные натуральные модули - основания системы называется системой остаточных классов - СОК (residue number system - RNS) или модулярной системой счисления - МСС (modular system).&lt;br /&gt;
&lt;br /&gt;
Смотри [[Система остаточных классов|Система остаточных классов]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Выбор системы остаточных классов для представления чисел ==&lt;br /&gt;
&lt;br /&gt;
Под системой счисления понимают совокупность символический метод записи чисел, представление чисел с помощью письменных знаков, или, точнее, способ кодирования (представления) элементов некоторой конечной модели действительных чисел словами одного или более алфавитов. &lt;br /&gt;
&lt;br /&gt;
К любой кодовой системе применимы следующие требования:&lt;br /&gt;
&lt;br /&gt;
* возможность представления в данной системе любой величины в рассматриваемом, заранее назначенном диапазоне;&lt;br /&gt;
* единственность представления – любая кодовая комбинация соответствует одному и только одному числу в заданном диапазоне;&lt;br /&gt;
* простота оперирования числами в данной системе счисления.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Системы счисления подразделяются на позиционные, непозиционные и смешанные. ([https://ru.wikipedia.org/wiki/%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D1%81%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F#.D0.9D.D0.B5.D0.BF.D0.BE.D0.B7.D0.B8.D1.86.D0.B8.D0.BE.D0.BD.D0.BD.D1.8B.D0.B5_.D1.81.D0.B8.D1.81.D1.82.D0.B5.D0.BC.D1.8B_.D1.81.D1.87.D0.B8.D1.81.D0.BB.D0.B5.D0.BD.D0.B8.D1.8F Система счисления])&lt;br /&gt;
&lt;br /&gt;
В позиционных системах счисления один и тот же числовой знак (цифра) в записи числа имеет различные значения в зависимости от того места (разряда), где он расположен.  Обычно используется b-ричная система счисления, которая определяется целым числом b&amp;gt;1, называемым основанием системы счисления.  &lt;br /&gt;
&lt;br /&gt;
Смешанная система счисления является обобщением b-ричной системы счисления и также зачастую относится к позиционным системам счисления. Смотри [[Полиадический код|Полиадический код]].&lt;br /&gt;
&lt;br /&gt;
В непозиционных системах счисления величина, которую обозначает цифра, не зависит от её положения в числе. При этом система может накладывать ограничения на положение цифр.&lt;br /&gt;
&lt;br /&gt;
Всякая вычислительная структура тесно связана с системой счисления, в которой она работает. &lt;br /&gt;
&lt;br /&gt;
В обычной позиционной системе счисления (ПСС) значение разряда любого числа, кроме младшего, являющегося результатом двухместной арифметической операции, зависит не только от значения одноимённых операндов, но и от всех младших разрядов, т. е. ПСС обладает строго последовательной структурой. &lt;br /&gt;
Напротив, непозиционные коды с параллельной структурой позволяют реализовать распараллеливание операций на уровне выполнения элементарных арифметических действий. &lt;br /&gt;
&lt;br /&gt;
В качестве такой непозиционной системы удобна система остаточных классов. &lt;br /&gt;
&lt;br /&gt;
Основным достоинством системы остаточных классов является сравнительная простота выполнения модульных операций (сложения, вычитания, умножения), недостатком - большая трудоемкость операций, которые требуют знания всего числа в целом, называемых немодульными (например, сравнение чисел).&lt;br /&gt;
&lt;br /&gt;
Смотри [[Представление числа в системе остаточных классов|Представление числа в системе остаточных классов]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Модульные операции над числами в системе остаточных классов ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Смотри [[Модульные операции|Модульные операции]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Основные методы и алгоритмы перехода от позиционного представления к остаткам ==&lt;br /&gt;
&lt;br /&gt;
Обычно исходные данные для вычислений представлены в каком-либо традиционном представлении, двоичном или десятичном. В таком же виде ожидаются результаты вычислений. Отсюда понятна необходимость перевода чисел из позиционного представления в представление СОК (прямое преобразование) и обратно (обратное преобразование). Одной из первых немодульных процедур является прямое преобразование позиционных кодов в код СОК.&lt;br /&gt;
&lt;br /&gt;
Перевод числа в систему остаточных классов можно осуществить непосредственно методом деления, с модулями СОК в качестве делителей. Однако из-за сложности операции деления техническая реализация такого метода неэффективна.&lt;br /&gt;
Поэтому рассматриваются другие методы.&lt;br /&gt;
Например, часто используется метод перевода числа из позиционной системы счисления в СОК, не содержащий операции деления, называемый методом непосредственного суммирования модульных значений разрядов позиционного числа.&lt;br /&gt;
&lt;br /&gt;
Смотри [[Алгоритмы перехода от позиционного представления к остаткам|Алгоритмы перехода от позиционного представления к остаткам]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Восстановление позиционного представления числа по его остаткам ==&lt;br /&gt;
&lt;br /&gt;
Система остаточных классов обладает одной особенностью, которую можно отнести к недостаткам этой системы: нельзя визуально определить величину числа, представленного в СОК, а следовательно затруднительно и выполнение таких операций, как сравнение чисел, определение знака числа. Один из путей решения этой проблемы состоит в преобразовании чисел из СОК в позиционную систему счисления. Оценим существующие способы перевода, как традиционные: метод ортогональных базисов; перевод числа в обобщенную позиционную систему (ОПС), так и недавно появившиеся интервальные методы перевода.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Метод ортогональных базисов'''&lt;br /&gt;
&lt;br /&gt;
Метод восстановления числа по его остаткам был найден еще в Китае две тысячи лет назад. Основой этого метода является теорема, названная [[Китайская теорема об остатках| Китайской теоремой об остатках (КТО)]].&lt;br /&gt;
&lt;br /&gt;
Эта теорема лежит в основе метода ортогональных базисов при переводе из системы остаточных классов в позиционную систему счисления.&lt;br /&gt;
&lt;br /&gt;
Смотри [[Метод ортогональных базисов|Метод ортогональных базисов]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Перевод числа из СОК в обобщенную позиционную систему (ОПС)'''&lt;br /&gt;
&lt;br /&gt;
Еще один метод определения величины числа связан с переводом числа из системы остаточных классов в ОПС. Для того, чтобы рассмотреть этот метод, выявим связь между представлением некоторого числа в этих двух системах. &lt;br /&gt;
&lt;br /&gt;
Пусть по-прежнему СОК задается основаниями &amp;lt;math&amp;gt;p_1, p_2, \ldots, p_n&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;A = ({\alpha}_1, {\alpha}_2, \ldots, {\alpha}_n)&amp;lt;/math&amp;gt; - число в этой системе. И пусть &amp;lt;math&amp;gt;p_1, p_2, \ldots, p_n&amp;lt;/math&amp;gt; являются также основаниями ОПС, тогда число &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt; можно представить в виде&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;A = a_n\cdot p_1\cdot p_2\cdot \ldots \cdot p_{n-1} + a_{n-1}\cdot p_1\cdot p_2\cdot \ldots \cdot p_{n-2} + \ldots + a_3\cdot p_1\cdot p_2 + a_2\cdot p_1 + a_1&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
где &amp;lt;math&amp;gt;0\le a_k&amp;lt;p_1\cdot p_2\cdot \ldots \cdot p_{k-1}&amp;lt;/math&amp;gt; – коэффициенты (цифры) ОПС.&lt;br /&gt;
&lt;br /&gt;
Очевидно, что диапазоны чисел, представимых в СОК и ОПС совпадают, т.е. можно говорить о наличии взаимно однозначного соответствия между множеством представлений чисел в СОК и ОПС.&lt;br /&gt;
&lt;br /&gt;
Это равенство можно переписать в следующем виде:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;A = a_1 + p_1(a_2 + p_2(a_3 + \ldots +p_{n-2}(a_{n-1} + p_{n-1} a_n) \ldots ))&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
откуда следует, что цифры ОПС могут быть получены из соотношений:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;a_1 = A - \left[ \frac{A}{p_1}\right] \cdot p_1 = A - A_1\cdot p_1&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;A_1 = \left[ \frac{A}{p_1}\right]&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;a_2 = A_1 - \left[ \frac{A_1}{p_2}\right] \cdot p_2 = A_1 - A_2\cdot p_2&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;A_2 = \left[ \frac{A_1}{p_2}\right]&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\ldots&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;a_n = A_{n-1} - \left[ \frac{A_{n-1}}{p_n}\right] \cdot p_n = A_{n-1} - A_n\cdot p_n&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;A_n = \left[ \frac{A_{n-1}}{p_n}\right]&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Причем при определении цифр &amp;lt;math&amp;gt;a_i&amp;lt;/math&amp;gt; по этим формулам все вычисления можно вести в СОК.&lt;br /&gt;
&lt;br /&gt;
Смотри [[Перевод числа из СОК в обобщенную позиционную систему|Перевод числа из СОК в обобщенную позиционную систему]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Интервальные методы перевода'''&lt;br /&gt;
&lt;br /&gt;
Достаточно эффективными методами перевода чисел из СОК в ПСС являются интервальные методы, основанные на интервальных характеристиках чисел. Одна из таких характеристик – номер интервала.&lt;br /&gt;
&lt;br /&gt;
Смотри [[Интервальные методы перевода|Интервальные методы перевода]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Расширение диапазона представления чисел ==&lt;br /&gt;
&lt;br /&gt;
Расширение системы оснований является одной из основных немодульных операций в СОК. Выполнение этой операции бывает необходимо при выполнении операции деления чисел, при вычислении позиционных характеристик, при обнаружении переполнения при выполнении сложения или умножения чисел.&lt;br /&gt;
&lt;br /&gt;
Задачу расширения системы оснований можно сформулировать следующим образом: найти остаточное представление числа по новому основанию (новым основаниям), если известно представление числа по другим основаниям остатки от деления на другие числа.&lt;br /&gt;
Один из путей расширения системы оснований состоит в переводе числа в позиционную систему счисления и вычисления остатка от деления на новый модуль. Этот путь не является рациональным с точки зрения числа операций.&lt;br /&gt;
&lt;br /&gt;
Другой метод расширения системы оснований позволяет определить цифру числа по новому основанию, базируясь на таких позиционных характеристиках числа, как ранг числа, след числа. &lt;br /&gt;
&lt;br /&gt;
Смотри [[Расширение диапазона представления чисел|Расширение диапазона представления чисел]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Литература =&lt;/div&gt;</summary>
		<author><name>Isaeva</name></author>	</entry>

	<entry>
		<id>https://vscripts.ru/w/%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BE%D1%81%D1%82%D0%B0%D1%82%D0%BE%D1%87%D0%BD%D1%8B%D1%85_%D0%BA%D0%BB%D0%B0%D1%81%D1%81%D0%BE%D0%B2_-_%D0%B2%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5</id>
		<title>Система остаточных классов - введение</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BE%D1%81%D1%82%D0%B0%D1%82%D0%BE%D1%87%D0%BD%D1%8B%D1%85_%D0%BA%D0%BB%D0%B0%D1%81%D1%81%D0%BE%D0%B2_-_%D0%B2%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5"/>
				<updated>2015-02-12T13:00:53Z</updated>
		
		<summary type="html">&lt;p&gt;Isaeva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Теоретико-числовая база построения системы остаточных классов =&lt;br /&gt;
&lt;br /&gt;
Напомним определение деления с остатком.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Определение''' &lt;br /&gt;
&lt;br /&gt;
Говорят, что целое число &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; делится на натуральное число &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; с остатком, если имеется пара целых чисел &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;, таких, что &amp;lt;math&amp;gt;n = m \cdot q+r&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;0\le r&amp;lt;m&amp;lt;/math&amp;gt;. &lt;br /&gt;
&amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; называется делимым, &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; - делителем, &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; - неполным частным, &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt; - остатком.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Для целых чисел:&lt;br /&gt;
&lt;br /&gt;
'''Определение''' &lt;br /&gt;
&lt;br /&gt;
Говорят, что целое число &amp;lt;math&amp;gt;n \in Z&amp;lt;/math&amp;gt; делится на целое число &amp;lt;math&amp;gt;m \in Z&amp;lt;/math&amp;gt; с остатком, если имеется пара целых чисел &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;, таких, что &amp;lt;math&amp;gt;n = m \cdot q+r&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;0\le r&amp;lt;|m|&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Пример''': &lt;br /&gt;
&lt;br /&gt;
'''48''' при делении на '''5''' даёт остаток '''3''', т.к. &amp;lt;math&amp;gt;48=5\cdot 9+3&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;0\le 3&amp;lt;5&amp;lt;/math&amp;gt;, '''-48''' при делении на '''5''' даёт остаток '''2''', т.к. &amp;lt;math&amp;gt;-48=5\cdot (-10)+2&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;0\le 2&amp;lt;5&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Сравнения и их основные свойства ==&lt;br /&gt;
&lt;br /&gt;
Возьмём произвольное фиксированное натуральное число &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; и будем рассматривать остатки при делении на &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; различных целых чисел.&lt;br /&gt;
&lt;br /&gt;
При рассмотрении свойств этих остатков и проведении операций над ними удобно ввести понятие сравнения по модулю.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Определение''' &lt;br /&gt;
&lt;br /&gt;
Два целых числа &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt; b &amp;lt;/math&amp;gt; называются '''сравнимыми по модулю &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt;''', если их разность &amp;lt;math&amp;gt; a-b &amp;lt;/math&amp;gt; делится без остатка на &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Символически сравнимость записывается в виде формулы ('''сравнения'''):&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;a \equiv b \pmod{m}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Число &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; называется '''модулем''' сравнения.&lt;br /&gt;
&lt;br /&gt;
Эквивалентная формулировка:&lt;br /&gt;
&lt;br /&gt;
'''Определение''' &lt;br /&gt;
&lt;br /&gt;
Целые числа &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt; b &amp;lt;/math&amp;gt; называются '''сравнимыми по модулю &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt;''', если остатки от деления этих чисел на &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; равны.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Отношение сравнимости по модулю &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; обладает свойствами рефлексивности, симметричности и транзитивности, т.е. является отношением эквивалентности.&lt;br /&gt;
&lt;br /&gt;
Отнесём все целые числа, дающие при делении на &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; один и тот же остаток в один класс, поэтому получится &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; различных классов по модулю &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt;.&lt;br /&gt;
Множество всех чисел сравнимых с &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; по модулю &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; называется классом вычетов &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; по модулю &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Подробнее о свойствах сравнений и классах вычетов смотри [[Сравнения и их основные свойства| Сравнения и их основные свойства]] &lt;br /&gt;
&lt;br /&gt;
== Теорема о делении с остатком. Алгоритм Евклида ==&lt;br /&gt;
&lt;br /&gt;
'''Теорема о делении с остатком'''&lt;br /&gt;
&lt;br /&gt;
Для любых целых &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;b \not= 0&amp;lt;/math&amp;gt;, существует единственный набор целых чисел &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;, что &amp;lt;math&amp;gt;a = bq + r&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;0 \le r &amp;lt; |b|&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;|b|&amp;lt;/math&amp;gt; — модуль числа &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
На этой операции основан алгоритм Евклида нахождения наибольшего общего делителя двух целых чисел.&lt;br /&gt;
&lt;br /&gt;
'''Алгоритм Евклида для целых чисел'''&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; — целые числа, не равные одновременно нулю, и последовательность чисел&lt;br /&gt;
: &amp;lt;math&amp;gt; a &amp;gt; b &amp;gt; r_1 &amp;gt; r_2 &amp;gt; r_3 &amp;gt; r_4 &amp;gt; \cdots &amp;gt;r_n&amp;lt;/math&amp;gt;&lt;br /&gt;
определена тем, что каждое &amp;lt;math&amp;gt;r_k&amp;lt;/math&amp;gt; — это остаток от деления предпредыдущего числа на предыдущее, а предпоследнее делится на последнее нацело, то есть&lt;br /&gt;
: &amp;lt;math&amp;gt;a = bq_0 + r_1&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;b = r_1q_1 + r_2&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;r_1 = r_2q_2 + r_3&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;\cdots&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;r_{k-2} = r_{k-1} q_{k-1} + r_k&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;\cdots&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;r_{n-2} = r_{n-1}q_{n-1}+ r_n&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;r_{n-1} = r_n q_n&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Тогда '''НОД''' &amp;lt;math&amp;gt;(a,b)&amp;lt;/math&amp;gt;, наибольший общий делитель &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt;, равен&lt;br /&gt;
&amp;lt;math&amp;gt;r_n&amp;lt;/math&amp;gt;, последнему ненулевому члену этой последовательности.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Существование''' таких &amp;lt;math&amp;gt;r_1, r_2, ...&amp;lt;/math&amp;gt;, то есть возможность деления с остатком &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; на &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; для любого целого &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и целого &amp;lt;math&amp;gt;b\ne 0&amp;lt;/math&amp;gt;, доказывается индукцией.&lt;br /&gt;
&lt;br /&gt;
'''Корректность''' этого алгоритма вытекает из следующих двух утверждений:&lt;br /&gt;
&lt;br /&gt;
* Пусть &amp;lt;math&amp;gt;a = bq + r&amp;lt;/math&amp;gt;, тогда '''НОД''' &amp;lt;math&amp;gt;(a,b)&amp;lt;/math&amp;gt; = '''НОД''' &amp;lt;math&amp;gt;(b,r)&amp;lt;/math&amp;gt;.&lt;br /&gt;
* '''НОД''' &amp;lt;math&amp;gt;(0,r)&amp;lt;/math&amp;gt; = &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt; для любого ненулевого &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt; (так как 0 делится на любое целое число, кроме нуля).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Смотри [[Теорема о делении с остатком. Алгоритм Евклида|Теорема о делении с остатком. Алгоритм Евклида]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Китайская теорема об остатках ==&lt;br /&gt;
&lt;br /&gt;
Фундаментальным положением, лежащим в основе модулярного представления чисел, является китайская теорема об остатках (Chinese Remainder Theorem - CRT). &lt;br /&gt;
Например, эта теорема гарантирует, что при правильном выборе модулей СОК  &lt;br /&gt;
каждое число из динамического диапазона имеет в СОК единственное представление, &lt;br /&gt;
и по этому представлению можно определить представленное число.&lt;br /&gt;
В своей первоначальной формулировке эта теорема была доказана китайским математиком Сунь-Цзы приблизительно в 100 г. н.э.&lt;br /&gt;
В современной формулировке теорема звучит так:&lt;br /&gt;
&lt;br /&gt;
'''Теорема'''&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;p_1, p_2, \ldots, p_k&amp;lt;/math&amp;gt; - попарно взаимно простые числа, большие 1, и пусть &amp;lt;math&amp;gt;p = p_1 \cdot p_2 \cdot \ldots  \cdot p_k&amp;lt;/math&amp;gt;. Тогда существует единственное неотрицательное решение по модулю &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; следующей системы сравнений:&lt;br /&gt;
: &amp;lt;math&amp;gt;x \equiv a_1 \pmod{p_1}&amp;lt;/math&amp;gt;,&lt;br /&gt;
: &amp;lt;math&amp;gt;x \equiv a_2 \pmod{p_2}&amp;lt;/math&amp;gt;,&lt;br /&gt;
: &amp;lt;math&amp;gt;\ldots&amp;lt;/math&amp;gt;,&lt;br /&gt;
: &amp;lt;math&amp;gt;x \equiv a_k \pmod{p_k}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Другими словами, отображение, которое каждому целому числу &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;0\le x &amp;lt;p&amp;lt;/math&amp;gt;, ставит в соответствие кортеж &amp;lt;math&amp;gt;a_1, a_2,\ldots, a_k&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;x \equiv a_i \pmod{p_i}, i = 1, \ldots k&amp;lt;/math&amp;gt; является биекцией кольца &amp;lt;math&amp;gt;Z_P&amp;lt;/math&amp;gt; на декартово произведение &amp;lt;math&amp;gt;Z_{p_1} \times Z_{p_2} \times \ldots \times Z_{p_k}&amp;lt;/math&amp;gt;  колец &amp;lt;math&amp;gt;Z_{p_1}, Z_{p_2}, \ldots, Z_{p_k}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Подробности и доказательство теоремы смотри [[Китайская теорема об остатках| Китайская теорема об остатках]].&lt;br /&gt;
&lt;br /&gt;
Смотри также [[Описание КТО II|Китайская теорема об остатках(КТО II)]], [[Описание КТО III|Китайская теорема об остатках (КТО III)]].&lt;br /&gt;
&lt;br /&gt;
== Теоремы Эйлера и Ферма, их роль в вычислении мультипликативных обратных элементов по заданному модулю ==&lt;br /&gt;
&lt;br /&gt;
'''Определение'''&lt;br /&gt;
&lt;br /&gt;
Функция Эйлера &amp;lt;math&amp;gt;\varphi(n)&amp;lt;/math&amp;gt; — это количество чисел от &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; до &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt;, взаимно простых с &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Т.е. это количество таких натуральных чисел из отрезка [1; n], наибольший общий делитель (НОД) которых с &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; равен единице.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Tеоремa Эйлера'''&lt;br /&gt;
&lt;br /&gt;
Если &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; взаимно просты, то &amp;lt;math&amp;gt;a^{\varphi(p)} \equiv 1 \pmod p&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;\varphi(n)&amp;lt;/math&amp;gt; - функция Эйлера.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В частном случае, когда &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; простое, теорема Эйлера превращается в так называемую малую теорему Ферма:&lt;br /&gt;
Частным случаем теоремы Эйлера является малая теорема Ферма.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Малая теорема Ферма'''&lt;br /&gt;
&lt;br /&gt;
Если &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; - простое число и &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; - произвольное целое число, не делящееся на &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;, то &amp;lt;math&amp;gt;a^{p-1} \equiv 1 \pmod p &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Смотри [[Функция Эйлера|Функция Эйлера]], [[Вычисление мультипликативных обратных элементов по заданному модулю|Вычисление мультипликативных обратных элементов по заданному модулю]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Числа Мерсенна, Ферма и операции над ними ==&lt;br /&gt;
&lt;br /&gt;
При рассмотрении отдельных классов простых чисел интерес представляет вопрос о простых числах специального вида, например, числа Мерсенна или числа Ферма.&lt;br /&gt;
&lt;br /&gt;
'''Определение'''&lt;br /&gt;
&lt;br /&gt;
'''Числа Мерсенна''' — числа вида &amp;lt;math&amp;gt;M_n = 2^n - 1&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; — натуральное число.&lt;br /&gt;
Названы в честь французского математика Марена Мерсенна.&lt;br /&gt;
&lt;br /&gt;
Иногда числами Мерсенна называют только числа &amp;lt;math&amp;gt;M_n&amp;lt;/math&amp;gt; с нечетными или простыми индексами ''n''. &lt;br /&gt;
&lt;br /&gt;
Множества простых чисел в этих последовательностях совпадают, а потому понятие ''простого числа Мерсенна'' не зависит от того, как именно определяются числа Мерсенна.&lt;br /&gt;
&lt;br /&gt;
При простых значениях n = p число   может оказаться простым, но может быть составным.&lt;br /&gt;
Например, при &amp;lt;math&amp;gt;p = 2, 3, 5, 7, 13, 17, 19&amp;lt;/math&amp;gt; мы получаем простые числа Мерсенна: &amp;lt;math&amp;gt;3, 7, 31, 127, 8191, 131071&amp;lt;/math&amp;gt;, а при &amp;lt;math&amp;gt;p = 11, 23, 29&amp;lt;/math&amp;gt; числа &amp;lt;math&amp;gt;2^p - 1&amp;lt;/math&amp;gt; - составные. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Определение'''&lt;br /&gt;
&lt;br /&gt;
'''Числа Ферма''' — числа вида &amp;lt;math&amp;gt;F_n=2^{2^n}+1&amp;lt;/math&amp;gt;, где ''n'' — неотрицательное целое число. &lt;br /&gt;
&lt;br /&gt;
При &amp;lt;math&amp;gt;n = 0, 1, 2, 3, 4&amp;lt;/math&amp;gt; числа Ферма простые: &amp;lt;math&amp;gt;3, 5, 17, 257, 65537&amp;lt;/math&amp;gt;. Известно, что для &amp;lt;math&amp;gt;5\le n \le 32&amp;lt;/math&amp;gt; числа &amp;lt;math&amp;gt;F_n&amp;lt;/math&amp;gt; являются составными. На 2014 г. не найдено ни одного простого числа такого вида для &amp;lt;math&amp;gt;n&amp;gt;4&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Все числа Мерсенна и Ферма – взаимно простые. Кроме того, для модулей СОК вида &amp;lt;math&amp;gt;M_n = 2^n - 1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;M_n = 2^n + 1&amp;lt;/math&amp;gt; легко реализуется преобразование и арифметические операции. Поэтому эффективно выбирать модули СОК в виде чисел Мерсенна и Ферма. &lt;br /&gt;
&lt;br /&gt;
Смотри [[Числа Мерсенна и Ферма|Числа Мерсенна и Ферма]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Математические модели модулярного представления и параллельной обработки информации =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Определение системы остаточных классов==&lt;br /&gt;
&lt;br /&gt;
Представление чисел в виде набора остатков от деления на выбранные натуральные модули - основания системы называется системой остаточных классов - СОК (residue number system - RNS) или модулярной системой счисления - МСС (modular system).&lt;br /&gt;
&lt;br /&gt;
Смотри [[Система остаточных классов|Система остаточных классов]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Представление числа в системе остаточных классов. Модульные операции ==&lt;br /&gt;
&lt;br /&gt;
Всякая вычислительная структура тесно связана с системой счисления, в которой она работает. &lt;br /&gt;
&lt;br /&gt;
Под системой счисления понимают совокупность символический метод записи чисел, представление чисел с помощью письменных знаков, или, точнее, способ кодирования (представления) элементов некоторой конечной модели действительных чисел словами одного или более алфавитов. &lt;br /&gt;
&lt;br /&gt;
К любой кодовой системе применимы следующие требования:&lt;br /&gt;
&lt;br /&gt;
* возможность представления в данной системе любой величины в рассматриваемом, заранее назначенном диапазоне;&lt;br /&gt;
* единственность представления – любая кодовая комбинация соответствует одному и только одному числу в заданном диапазоне;&lt;br /&gt;
* простота оперирования числами в данной системе счисления.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Системы счисления подразделяются на позиционные, непозиционные и смешанные. ([https://ru.wikipedia.org/wiki/%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D1%81%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F#.D0.9D.D0.B5.D0.BF.D0.BE.D0.B7.D0.B8.D1.86.D0.B8.D0.BE.D0.BD.D0.BD.D1.8B.D0.B5_.D1.81.D0.B8.D1.81.D1.82.D0.B5.D0.BC.D1.8B_.D1.81.D1.87.D0.B8.D1.81.D0.BB.D0.B5.D0.BD.D0.B8.D1.8F Система счисления])&lt;br /&gt;
&lt;br /&gt;
В позиционных системах счисления один и тот же числовой знак (цифра) в записи числа имеет различные значения в зависимости от того места (разряда), где он расположен.  Обычно используется b-ричная система счисления, которая определяется целым числом b&amp;gt;1, называемым основанием системы счисления.  &lt;br /&gt;
&lt;br /&gt;
Смешанная система счисления является обобщением b-ричной системы счисления и также зачастую относится к позиционным системам счисления. Смотри [[Полиадический код|Полиадический код]].&lt;br /&gt;
&lt;br /&gt;
В непозиционных системах счисления величина, которую обозначает цифра, не зависит от её положения в числе. При этом система может накладывать ограничения на положение цифр.&lt;br /&gt;
&lt;br /&gt;
В обычной позиционной системе счисления (ПСС) значение разряда любого числа, кроме младшего, являющегося результатом двухместной арифметической операции, зависит не только от значения одноимённых операндов, но и от всех младших разрядов, т. е. ПСС обладает строго последовательной структурой. &lt;br /&gt;
Напротив, непозиционные коды с параллельной структурой позволяют реализовать распараллеливание операций на уровне выполнения элементарных арифметических действий. &lt;br /&gt;
&lt;br /&gt;
В качестве такой непозиционной системы удобна система остаточных классов. &lt;br /&gt;
&lt;br /&gt;
Основным достоинством системы остаточных классов является сравнительная простота выполнения модульных операций (сложения, вычитания, умножения), недостатком - большая трудоемкость операций, которые требуют знания всего числа в целом, называемых немодульными (например, сравнение чисел).&lt;br /&gt;
&lt;br /&gt;
Смотри [[Представление числа в системе остаточных классов|Представление числа в системе остаточных классов]], [[Модульные операции|Модульные операции]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Основные методы и алгоритмы перехода от позиционного представления к остаткам ==&lt;br /&gt;
&lt;br /&gt;
Обычно исходные данные для вычислений представлены в каком-либо традиционном представлении, двоичном или десятичном. В таком же виде ожидаются результаты вычислений. Отсюда понятна необходимость перевода чисел из позиционного представления в представление СОК (прямое преобразование) и обратно (обратное преобразование). Одной из первых немодульных процедур является прямое преобразование позиционных кодов в код СОК.&lt;br /&gt;
&lt;br /&gt;
Перевод числа в систему остаточных классов можно осуществить непосредственно методом деления, с модулями СОК в качестве делителей. Однако из-за сложности операции деления техническая реализация такого метода неэффективна.&lt;br /&gt;
Поэтому рассматриваются другие методы.&lt;br /&gt;
Например, часто используется метод перевода числа из позиционной системы счисления в СОК, не содержащий операции деления, называемый методом непосредственного суммирования модульных значений разрядов позиционного числа.&lt;br /&gt;
&lt;br /&gt;
Смотри [[Алгоритмы перехода от позиционного представления к остаткам|Алгоритмы перехода от позиционного представления к остаткам]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Восстановление позиционного представления числа по его остаткам ==&lt;br /&gt;
&lt;br /&gt;
Система остаточных классов обладает одной особенностью, которую можно отнести к недостаткам этой системы: нельзя визуально определить величину числа, представленного в СОК, а следовательно затруднительно и выполнение таких операций, как сравнение чисел, определение знака числа. Один из путей решения этой проблемы состоит в преобразовании чисел из СОК в позиционную систему счисления. Оценим существующие способы перевода, как традиционные: метод ортогональных базисов; перевод числа в обобщенную позиционную систему (ОПС), так и недавно появившиеся интервальные методы перевода.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Метод ортогональных базисов'''&lt;br /&gt;
&lt;br /&gt;
Метод восстановления числа по его остаткам был найден еще в Китае две тысячи лет назад. Основой этого метода является теорема, названная [[Китайская теорема об остатках| Китайской теоремой об остатках (КТО)]].&lt;br /&gt;
&lt;br /&gt;
Эта теорема лежит в основе метода ортогональных базисов при переводе из системы остаточных классов в позиционную систему счисления.&lt;br /&gt;
&lt;br /&gt;
Смотри [[Метод ортогональных базисов|Метод ортогональных базисов]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Перевод числа из СОК в обобщенную позиционную систему (ОПС)'''&lt;br /&gt;
&lt;br /&gt;
Еще один метод определения величины числа связан с переводом числа из системы остаточных классов в ОПС. Для того, чтобы рассмотреть этот метод, выявим связь между представлением некоторого числа в этих двух системах. &lt;br /&gt;
&lt;br /&gt;
Пусть по-прежнему СОК задается основаниями &amp;lt;math&amp;gt;p_1, p_2, \ldots, p_n&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;A = ({\alpha}_1, {\alpha}_2, \ldots, {\alpha}_n)&amp;lt;/math&amp;gt; - число в этой системе. И пусть &amp;lt;math&amp;gt;p_1, p_2, \ldots, p_n&amp;lt;/math&amp;gt; являются также основаниями ОПС, тогда число &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt; можно представить в виде&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;A = a_n\cdot p_1\cdot p_2\cdot \ldots \cdot p_{n-1} + a_{n-1}\cdot p_1\cdot p_2\cdot \ldots \cdot p_{n-2} + \ldots + a_3\cdot p_1\cdot p_2 + a_2\cdot p_1 + a_1&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
где &amp;lt;math&amp;gt;0\le a_k&amp;lt;p_1\cdot p_2\cdot \ldots \cdot p_{k-1}&amp;lt;/math&amp;gt; – коэффициенты (цифры) ОПС.&lt;br /&gt;
&lt;br /&gt;
Очевидно, что диапазоны чисел, представимых в СОК и ОПС совпадают, т.е. можно говорить о наличии взаимно однозначного соответствия между множеством представлений чисел в СОК и ОПС.&lt;br /&gt;
&lt;br /&gt;
Это равенство можно переписать в следующем виде:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;A = a_1 + p_1(a_2 + p_2(a_3 + \ldots +p_{n-2}(a_{n-1} + p_{n-1} a_n) \ldots ))&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
откуда следует, что цифры ОПС могут быть получены из соотношений:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;a_1 = A - \left[ \frac{A}{p_1}\right] \cdot p_1 = A - A_1\cdot p_1&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;A_1 = \left[ \frac{A}{p_1}\right]&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;a_2 = A_1 - \left[ \frac{A_1}{p_2}\right] \cdot p_2 = A_1 - A_2\cdot p_2&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;A_2 = \left[ \frac{A_1}{p_2}\right]&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\ldots&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;a_n = A_{n-1} - \left[ \frac{A_{n-1}}{p_n}\right] \cdot p_n = A_{n-1} - A_n\cdot p_n&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;A_n = \left[ \frac{A_{n-1}}{p_n}\right]&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Причем при определении цифр &amp;lt;math&amp;gt;a_i&amp;lt;/math&amp;gt; по этим формулам все вычисления можно вести в СОК.&lt;br /&gt;
&lt;br /&gt;
Смотри [[Перевод числа из СОК в обобщенную позиционную систему|Перевод числа из СОК в обобщенную позиционную систему]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Интервальные методы перевода'''&lt;br /&gt;
&lt;br /&gt;
Достаточно эффективными методами перевода чисел из СОК в ПСС являются интервальные методы, основанные на интервальных характеристиках чисел. Одна из таких характеристик – номер интервала.&lt;br /&gt;
&lt;br /&gt;
Смотри [[Интервальные методы перевода|Интервальные методы перевода]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Расширение диапазона представления чисел ==&lt;br /&gt;
&lt;br /&gt;
Расширение системы оснований является одной из основных немодульных операций в СОК. Выполнение этой операции бывает необходимо при выполнении операции деления чисел, при вычислении позиционных характеристик, при обнаружении переполнения при выполнении сложения или умножения чисел.&lt;br /&gt;
&lt;br /&gt;
Задачу расширения системы оснований можно сформулировать следующим образом: найти остаточное представление числа по новому основанию (новым основаниям), если известно представление числа по другим основаниям остатки от деления на другие числа.&lt;br /&gt;
Один из путей расширения системы оснований состоит в переводе числа в позиционную систему счисления и вычисления остатка от деления на новый модуль. Этот путь не является рациональным с точки зрения числа операций.&lt;br /&gt;
&lt;br /&gt;
Другой метод расширения системы оснований позволяет определить цифру числа по новому основанию, базируясь на таких позиционных характеристиках числа, как ранг числа, след числа. &lt;br /&gt;
&lt;br /&gt;
Смотри [[Расширение диапазона представления чисел|Расширение диапазона представления чисел]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Литература =&lt;/div&gt;</summary>
		<author><name>Isaeva</name></author>	</entry>

	<entry>
		<id>https://vscripts.ru/w/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC%D1%8B_%D0%BF%D0%B5%D1%80%D0%B5%D1%85%D0%BE%D0%B4%D0%B0_%D0%BE%D1%82_%D0%BF%D0%BE%D0%B7%D0%B8%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BF%D1%80%D0%B5%D0%B4%D1%81%D1%82%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F_%D0%BA_%D0%BE%D1%81%D1%82%D0%B0%D1%82%D0%BA%D0%B0%D0%BC</id>
		<title>Алгоритмы перехода от позиционного представления к остаткам</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC%D1%8B_%D0%BF%D0%B5%D1%80%D0%B5%D1%85%D0%BE%D0%B4%D0%B0_%D0%BE%D1%82_%D0%BF%D0%BE%D0%B7%D0%B8%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BF%D1%80%D0%B5%D0%B4%D1%81%D1%82%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F_%D0%BA_%D0%BE%D1%81%D1%82%D0%B0%D1%82%D0%BA%D0%B0%D0%BC"/>
				<updated>2015-02-12T12:37:35Z</updated>
		
		<summary type="html">&lt;p&gt;Isaeva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Обычно исходные данные для вычислений представлены в каком-либо традиционном представлении, двоичном или десятичном. В таком же виде ожидаются результаты вычислений. Отсюда понятна необходимость перевода чисел из позиционного представления в представление СОК (прямое преобразование) и обратно (обратное преобразование).&lt;br /&gt;
&lt;br /&gt;
Перевод числа в систему остаточных классов можно осуществить непосредственно методом деления с модулями СОК в качестве делителей. Однако из-за сложности операции деления техническая реализация такого метода неэффективна.&lt;br /&gt;
Поэтому рассматриваются другие методы.&lt;br /&gt;
Например, часто используется метод перевода числа из позиционной системы счисления в СОК, не содержащий операции деления, называемый методом непосредственного суммирования модульных значений разрядов позиционного числа.&lt;br /&gt;
&lt;br /&gt;
В настоящее время широкое применение получили следующие три вида преобразования:&lt;br /&gt;
&lt;br /&gt;
* метод понижения разрядности числа;&lt;br /&gt;
&lt;br /&gt;
* метод на основе сети прямого распространения;&lt;br /&gt;
&lt;br /&gt;
* метод непосредственного суммирования.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Основным достоинством системы остаточных классов является сравнительная простота выполнения модульных операций (сложения, вычитания, умножения). Кроме модульных операций в цифровых устройствах часто выполняются и такие операции, которые требуют знания числа в целом. Данные операции являются немодульными и относятся к классу позиционных операций, наиболее трудоемких в непозиционной системе класса вычетов.&lt;br /&gt;
&lt;br /&gt;
Одной из основных немодульных процедур, необходимых для функционирования спецпроцессора класса вычетов, прямое преобразование позиционного кода в код СОК.&lt;/div&gt;</summary>
		<author><name>Isaeva</name></author>	</entry>

	<entry>
		<id>https://vscripts.ru/w/%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BE%D1%81%D1%82%D0%B0%D1%82%D0%BE%D1%87%D0%BD%D1%8B%D1%85_%D0%BA%D0%BB%D0%B0%D1%81%D1%81%D0%BE%D0%B2_-_%D0%B2%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5</id>
		<title>Система остаточных классов - введение</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BE%D1%81%D1%82%D0%B0%D1%82%D0%BE%D1%87%D0%BD%D1%8B%D1%85_%D0%BA%D0%BB%D0%B0%D1%81%D1%81%D0%BE%D0%B2_-_%D0%B2%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5"/>
				<updated>2015-02-12T11:45:20Z</updated>
		
		<summary type="html">&lt;p&gt;Isaeva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Теоретико-числовая база построения системы остаточных классов =&lt;br /&gt;
&lt;br /&gt;
Напомним определение деления с остатком.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Определение''' &lt;br /&gt;
&lt;br /&gt;
Говорят, что целое число &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; делится на натуральное число &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; с остатком, если имеется пара целых чисел &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;, таких, что &amp;lt;math&amp;gt;n = m \cdot q+r&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;0\le r&amp;lt;m&amp;lt;/math&amp;gt;. &lt;br /&gt;
&amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; называется делимым, &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; - делителем, &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; - неполным частным, &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt; - остатком.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Для целых чисел:&lt;br /&gt;
&lt;br /&gt;
'''Определение''' &lt;br /&gt;
&lt;br /&gt;
Говорят, что целое число &amp;lt;math&amp;gt;n \in Z&amp;lt;/math&amp;gt; делится на целое число &amp;lt;math&amp;gt;m \in Z&amp;lt;/math&amp;gt; с остатком, если имеется пара целых чисел &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;, таких, что &amp;lt;math&amp;gt;n = m \cdot q+r&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;0\le r&amp;lt;|m|&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Пример''': &lt;br /&gt;
&lt;br /&gt;
'''48''' при делении на '''5''' даёт остаток '''3''', т.к. &amp;lt;math&amp;gt;48=5\cdot 9+3&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;0\le 3&amp;lt;5&amp;lt;/math&amp;gt;, '''-48''' при делении на '''5''' даёт остаток '''2''', т.к. &amp;lt;math&amp;gt;-48=5\cdot (-10)+2&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;0\le 2&amp;lt;5&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Сравнения и их основные свойства ==&lt;br /&gt;
&lt;br /&gt;
Возьмём произвольное фиксированное натуральное число &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; и будем рассматривать остатки при делении на &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; различных целых чисел.&lt;br /&gt;
&lt;br /&gt;
При рассмотрении свойств этих остатков и проведении операций над ними удобно ввести понятие сравнения по модулю.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Определение''' &lt;br /&gt;
&lt;br /&gt;
Два целых числа &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt; b &amp;lt;/math&amp;gt; называются '''сравнимыми по модулю &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt;''', если их разность &amp;lt;math&amp;gt; a-b &amp;lt;/math&amp;gt; делится без остатка на &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Символически сравнимость записывается в виде формулы ('''сравнения'''):&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;a \equiv b \pmod{m}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Число &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; называется '''модулем''' сравнения.&lt;br /&gt;
&lt;br /&gt;
Эквивалентная формулировка:&lt;br /&gt;
&lt;br /&gt;
'''Определение''' &lt;br /&gt;
&lt;br /&gt;
Целые числа &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt; b &amp;lt;/math&amp;gt; называются '''сравнимыми по модулю &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt;''', если остатки от деления этих чисел на &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; равны.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Отношение сравнимости по модулю &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; обладает свойствами рефлексивности, симметричности и транзитивности, т.е. является отношением эквивалентности.&lt;br /&gt;
&lt;br /&gt;
Отнесём все целые числа, дающие при делении на &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; один и тот же остаток в один класс, поэтому получится &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; различных классов по модулю &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt;.&lt;br /&gt;
Множество всех чисел сравнимых с &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; по модулю &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; называется классом вычетов &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; по модулю &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Подробнее о свойствах сравнений и классах вычетов смотри [[Сравнения и их основные свойства| Сравнения и их основные свойства]] &lt;br /&gt;
&lt;br /&gt;
== Теорема о делении с остатком. Алгоритм Евклида ==&lt;br /&gt;
&lt;br /&gt;
'''Теорема о делении с остатком'''&lt;br /&gt;
&lt;br /&gt;
Для любых целых &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;b \not= 0&amp;lt;/math&amp;gt;, существует единственный набор целых чисел &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;, что &amp;lt;math&amp;gt;a = bq + r&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;0 \le r &amp;lt; |b|&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;|b|&amp;lt;/math&amp;gt; — модуль числа &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
На этой операции основан алгоритм Евклида нахождения наибольшего общего делителя двух целых чисел.&lt;br /&gt;
&lt;br /&gt;
'''Алгоритм Евклида для целых чисел'''&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; — целые числа, не равные одновременно нулю, и последовательность чисел&lt;br /&gt;
: &amp;lt;math&amp;gt; a &amp;gt; b &amp;gt; r_1 &amp;gt; r_2 &amp;gt; r_3 &amp;gt; r_4 &amp;gt; \cdots &amp;gt;r_n&amp;lt;/math&amp;gt;&lt;br /&gt;
определена тем, что каждое &amp;lt;math&amp;gt;r_k&amp;lt;/math&amp;gt; — это остаток от деления предпредыдущего числа на предыдущее, а предпоследнее делится на последнее нацело, то есть&lt;br /&gt;
: &amp;lt;math&amp;gt;a = bq_0 + r_1&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;b = r_1q_1 + r_2&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;r_1 = r_2q_2 + r_3&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;\cdots&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;r_{k-2} = r_{k-1} q_{k-1} + r_k&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;\cdots&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;r_{n-2} = r_{n-1}q_{n-1}+ r_n&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;r_{n-1} = r_n q_n&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Тогда '''НОД''' &amp;lt;math&amp;gt;(a,b)&amp;lt;/math&amp;gt;, наибольший общий делитель &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt;, равен&lt;br /&gt;
&amp;lt;math&amp;gt;r_n&amp;lt;/math&amp;gt;, последнему ненулевому члену этой последовательности.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Существование''' таких &amp;lt;math&amp;gt;r_1, r_2, ...&amp;lt;/math&amp;gt;, то есть возможность деления с остатком &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; на &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; для любого целого &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и целого &amp;lt;math&amp;gt;b\ne 0&amp;lt;/math&amp;gt;, доказывается индукцией.&lt;br /&gt;
&lt;br /&gt;
'''Корректность''' этого алгоритма вытекает из следующих двух утверждений:&lt;br /&gt;
&lt;br /&gt;
* Пусть &amp;lt;math&amp;gt;a = bq + r&amp;lt;/math&amp;gt;, тогда '''НОД''' &amp;lt;math&amp;gt;(a,b)&amp;lt;/math&amp;gt; = '''НОД''' &amp;lt;math&amp;gt;(b,r)&amp;lt;/math&amp;gt;.&lt;br /&gt;
* '''НОД''' &amp;lt;math&amp;gt;(0,r)&amp;lt;/math&amp;gt; = &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt; для любого ненулевого &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt; (так как 0 делится на любое целое число, кроме нуля).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Смотри [[Теорема о делении с остатком. Алгоритм Евклида|Теорема о делении с остатком. Алгоритм Евклида]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Китайская теорема об остатках ==&lt;br /&gt;
&lt;br /&gt;
Фундаментальным положением, лежащим в основе модулярного представления чисел, является китайская теорема об остатках (Chinese Remainder Theorem - CRT). &lt;br /&gt;
Например, эта теорема гарантирует, что при правильном выборе модулей СОК  &lt;br /&gt;
каждое число из динамического диапазона имеет в СОК единственное представление, &lt;br /&gt;
и по этому представлению можно определить представленное число.&lt;br /&gt;
В своей первоначальной формулировке эта теорема была доказана китайским математиком Сунь-Цзы приблизительно в 100 г. н.э.&lt;br /&gt;
В современной формулировке теорема звучит так:&lt;br /&gt;
&lt;br /&gt;
'''Теорема'''&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;p_1, p_2, \ldots, p_k&amp;lt;/math&amp;gt; - попарно взаимно простые числа, большие 1, и пусть &amp;lt;math&amp;gt;p = p_1 \cdot p_2 \cdot \ldots  \cdot p_k&amp;lt;/math&amp;gt;. Тогда существует единственное неотрицательное решение по модулю &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; следующей системы сравнений:&lt;br /&gt;
: &amp;lt;math&amp;gt;x \equiv a_1 \pmod{p_1}&amp;lt;/math&amp;gt;,&lt;br /&gt;
: &amp;lt;math&amp;gt;x \equiv a_2 \pmod{p_2}&amp;lt;/math&amp;gt;,&lt;br /&gt;
: &amp;lt;math&amp;gt;\ldots&amp;lt;/math&amp;gt;,&lt;br /&gt;
: &amp;lt;math&amp;gt;x \equiv a_k \pmod{p_k}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Другими словами, отображение, которое каждому целому числу &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;0\le x &amp;lt;p&amp;lt;/math&amp;gt;, ставит в соответствие кортеж &amp;lt;math&amp;gt;a_1, a_2,\ldots, a_k&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;x \equiv a_i \pmod{p_i}, i = 1, \ldots k&amp;lt;/math&amp;gt; является биекцией кольца &amp;lt;math&amp;gt;Z_P&amp;lt;/math&amp;gt; на декартово произведение &amp;lt;math&amp;gt;Z_{p_1} \times Z_{p_2} \times \ldots \times Z_{p_k}&amp;lt;/math&amp;gt;  колец &amp;lt;math&amp;gt;Z_{p_1}, Z_{p_2}, \ldots, Z_{p_k}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Подробности и доказательство теоремы смотри [[Китайская теорема об остатках| Китайская теорема об остатках]].&lt;br /&gt;
&lt;br /&gt;
Смотри также [[Описание КТО II|Китайская теорема об остатках(КТО II)]], [[Описание КТО III|Китайская теорема об остатках (КТО III)]].&lt;br /&gt;
&lt;br /&gt;
== Теоремы Эйлера и Ферма, их роль в вычислении мультипликативных обратных элементов по заданному модулю ==&lt;br /&gt;
&lt;br /&gt;
'''Определение'''&lt;br /&gt;
&lt;br /&gt;
Функция Эйлера &amp;lt;math&amp;gt;\varphi(n)&amp;lt;/math&amp;gt; — это количество чисел от &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; до &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt;, взаимно простых с &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Т.е. это количество таких натуральных чисел из отрезка [1; n], наибольший общий делитель (НОД) которых с &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; равен единице.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Tеоремa Эйлера'''&lt;br /&gt;
&lt;br /&gt;
Если &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; взаимно просты, то &amp;lt;math&amp;gt;a^{\varphi(p)} \equiv 1 \pmod p&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;\varphi(n)&amp;lt;/math&amp;gt; - функция Эйлера.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В частном случае, когда &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; простое, теорема Эйлера превращается в так называемую малую теорему Ферма:&lt;br /&gt;
Частным случаем теоремы Эйлера является малая теорема Ферма.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Малая теорема Ферма'''&lt;br /&gt;
&lt;br /&gt;
Если &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; - простое число и &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; - произвольное целое число, не делящееся на &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;, то &amp;lt;math&amp;gt;a^{p-1} \equiv 1 \pmod p &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Смотри [[Функция Эйлера|Функция Эйлера]], [[Вычисление мультипликативных обратных элементов по заданному модулю|Вычисление мультипликативных обратных элементов по заданному модулю]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Числа Мерсенна, Ферма и операции над ними ==&lt;br /&gt;
&lt;br /&gt;
При рассмотрении отдельных классов простых чисел интерес представляет вопрос о простых числах специального вида, например, числа Мерсенна или числа Ферма.&lt;br /&gt;
&lt;br /&gt;
'''Определение'''&lt;br /&gt;
&lt;br /&gt;
'''Числа Мерсенна''' — числа вида &amp;lt;math&amp;gt;M_n = 2^n - 1&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; — натуральное число.&lt;br /&gt;
Названы в честь французского математика Марена Мерсенна.&lt;br /&gt;
&lt;br /&gt;
Иногда числами Мерсенна называют только числа &amp;lt;math&amp;gt;M_n&amp;lt;/math&amp;gt; с нечетными или простыми индексами ''n''. &lt;br /&gt;
&lt;br /&gt;
Множества простых чисел в этих последовательностях совпадают, а потому понятие ''простого числа Мерсенна'' не зависит от того, как именно определяются числа Мерсенна.&lt;br /&gt;
&lt;br /&gt;
При простых значениях n = p число   может оказаться простым, но может быть составным.&lt;br /&gt;
Например, при &amp;lt;math&amp;gt;p = 2, 3, 5, 7, 13, 17, 19&amp;lt;/math&amp;gt; мы получаем простые числа Мерсенна: &amp;lt;math&amp;gt;3, 7, 31, 127, 8191, 131071&amp;lt;/math&amp;gt;, а при &amp;lt;math&amp;gt;p = 11, 23, 29&amp;lt;/math&amp;gt; числа &amp;lt;math&amp;gt;2^p - 1&amp;lt;/math&amp;gt; - составные. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Определение'''&lt;br /&gt;
&lt;br /&gt;
'''Числа Ферма''' — числа вида &amp;lt;math&amp;gt;F_n=2^{2^n}+1&amp;lt;/math&amp;gt;, где ''n'' — неотрицательное целое число. &lt;br /&gt;
&lt;br /&gt;
При &amp;lt;math&amp;gt;n = 0, 1, 2, 3, 4&amp;lt;/math&amp;gt; числа Ферма простые: &amp;lt;math&amp;gt;3, 5, 17, 257, 65537&amp;lt;/math&amp;gt;. Известно, что для &amp;lt;math&amp;gt;5\le n \le 32&amp;lt;/math&amp;gt; числа &amp;lt;math&amp;gt;F_n&amp;lt;/math&amp;gt; являются составными. На 2014 г. не найдено ни одного простого числа такого вида для &amp;lt;math&amp;gt;n&amp;gt;4&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Все числа Мерсенна и Ферма – взаимно простые. Кроме того, для модулей СОК вида &amp;lt;math&amp;gt;M_n = 2^n - 1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;M_n = 2^n + 1&amp;lt;/math&amp;gt; легко реализуется преобразование и арифметические операции. Поэтому эффективно выбирать модули СОК в виде чисел Мерсенна и Ферма. &lt;br /&gt;
&lt;br /&gt;
Смотри [[Числа Мерсенна и Ферма|Числа Мерсенна и Ферма]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Математические модели модулярного представления и параллельной обработки информации =&lt;br /&gt;
&lt;br /&gt;
== Представление числа в системе остаточных классов. Модульные операции ==&lt;br /&gt;
&lt;br /&gt;
Всякая вычислительная структура тесно связана с системой счисления, в которой она работает. &lt;br /&gt;
&lt;br /&gt;
Под системой счисления понимают совокупность символический метод записи чисел, представление чисел с помощью письменных знаков, или, точнее, способ кодирования (представления) элементов некоторой конечной модели действительных чисел словами одного или более алфавитов. &lt;br /&gt;
&lt;br /&gt;
К любой кодовой системе применимы следующие требования:&lt;br /&gt;
&lt;br /&gt;
* возможность представления в данной системе любой величины в рассматриваемом, заранее назначенном диапазоне;&lt;br /&gt;
* единственность представления – любая кодовая комбинация соответствует одному и только одному числу в заданном диапазоне;&lt;br /&gt;
* простота оперирования числами в данной системе счисления.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Системы счисления подразделяются на позиционные, непозиционные и смешанные. ([https://ru.wikipedia.org/wiki/%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D1%81%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F#.D0.9D.D0.B5.D0.BF.D0.BE.D0.B7.D0.B8.D1.86.D0.B8.D0.BE.D0.BD.D0.BD.D1.8B.D0.B5_.D1.81.D0.B8.D1.81.D1.82.D0.B5.D0.BC.D1.8B_.D1.81.D1.87.D0.B8.D1.81.D0.BB.D0.B5.D0.BD.D0.B8.D1.8F Система счисления])&lt;br /&gt;
&lt;br /&gt;
В позиционных системах счисления один и тот же числовой знак (цифра) в записи числа имеет различные значения в зависимости от того места (разряда), где он расположен.  Обычно используется b-ричная система счисления, которая определяется целым числом b&amp;gt;1, называемым основанием системы счисления.  &lt;br /&gt;
&lt;br /&gt;
Смешанная система счисления является обобщением b-ричной системы счисления и также зачастую относится к позиционным системам счисления. Смотри [[Полиадический код|Полиадический код]].&lt;br /&gt;
&lt;br /&gt;
В непозиционных системах счисления величина, которую обозначает цифра, не зависит от её положения в числе. При этом система может накладывать ограничения на положение цифр.&lt;br /&gt;
&lt;br /&gt;
В обычной позиционной системе счисления (ПСС) значение разряда любого числа, кроме младшего, являющегося результатом двухместной арифметической операции, зависит не только от значения одноимённых операндов, но и от всех младших разрядов, т. е. ПСС обладает строго последовательной структурой. &lt;br /&gt;
Напротив, непозиционные коды с параллельной структурой позволяют реализовать распараллеливание операций на уровне выполнения элементарных арифметических действий. &lt;br /&gt;
&lt;br /&gt;
В качестве такой непозиционной системы удобна система остаточных классов.&lt;br /&gt;
&lt;br /&gt;
Представление чисел в виде набора остатков от деления на выбранные натуральные модули - основания системы называется системой остаточных классов - СОК (residue number system - RNS) или модулярной системой счисления - МСС (modular system). &lt;br /&gt;
&lt;br /&gt;
Основным достоинством системы остаточных классов является сравнительная простота выполнения модульных операций (сложения, вычитания, умножения), недостатком - большая трудоемкость операций, которые требуют знания всего числа в целом, называемых немодульными (например, сравнение чисел).&lt;br /&gt;
&lt;br /&gt;
Смотри [[Представление числа в системе остаточных классов|Представление числа в системе остаточных классов]], [[Модульные операции|Модульные операции]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Основные методы и алгоритмы перехода от позиционного представления к остаткам ==&lt;br /&gt;
&lt;br /&gt;
Обычно исходные данные для вычислений представлены в каком-либо традиционном представлении, двоичном или десятичном. В таком же виде ожидаются результаты вычислений. Отсюда понятна необходимость перевода чисел из позиционного представления в представление СОК (прямое преобразование) и обратно (обратное преобразование). Одной из первых немодульных процедур является прямое преобразование позиционных кодов в код СОК.&lt;br /&gt;
&lt;br /&gt;
Перевод числа в систему остаточных классов можно осуществить непосредственно методом деления, с модулями СОК в качестве делителей. Однако из-за сложности операции деления техническая реализация такого метода неэффективна.&lt;br /&gt;
Поэтому рассматриваются другие методы.&lt;br /&gt;
Например, часто используется метод перевода числа из позиционной системы счисления в СОК, не содержащий операции деления, называемый методом непосредственного суммирования модульных значений разрядов позиционного числа.&lt;br /&gt;
&lt;br /&gt;
Смотри [[Алгоритмы перехода от позиционного представления к остаткам|Алгоритмы перехода от позиционного представления к остаткам]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Восстановление позиционного представления числа по его остаткам ==&lt;br /&gt;
&lt;br /&gt;
Система остаточных классов обладает одной особенностью, которую можно отнести к недостаткам этой системы: нельзя визуально определить величину числа, представленного в СОК, а следовательно затруднительно и выполнение таких операций, как сравнение чисел, определение знака числа. Один из путей решения этой проблемы состоит в преобразовании чисел из СОК в позиционную систему счисления. Оценим существующие способы перевода, как традиционные: метод ортогональных базисов; перевод числа в обобщенную позиционную систему (ОПС), так и недавно появившиеся интервальные методы перевода.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Метод ортогональных базисов'''&lt;br /&gt;
&lt;br /&gt;
Метод восстановления числа по его остаткам был найден еще в Китае две тысячи лет назад. Основой этого метода является теорема, названная [[Китайская теорема об остатках| Китайской теоремой об остатках (КТО)]].&lt;br /&gt;
&lt;br /&gt;
Эта теорема лежит в основе метода ортогональных базисов при переводе из системы остаточных классов в позиционную систему счисления.&lt;br /&gt;
&lt;br /&gt;
Смотри [[Метод ортогональных базисов|Метод ортогональных базисов]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Перевод числа из СОК в обобщенную позиционную систему (ОПС)'''&lt;br /&gt;
&lt;br /&gt;
Еще один метод определения величины числа связан с переводом числа из системы остаточных классов в ОПС. Для того, чтобы рассмотреть этот метод, выявим связь между представлением некоторого числа в этих двух системах. &lt;br /&gt;
&lt;br /&gt;
Пусть по-прежнему СОК задается основаниями &amp;lt;math&amp;gt;p_1, p_2, \ldots, p_n&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;A = ({\alpha}_1, {\alpha}_2, \ldots, {\alpha}_n)&amp;lt;/math&amp;gt; - число в этой системе. И пусть &amp;lt;math&amp;gt;p_1, p_2, \ldots, p_n&amp;lt;/math&amp;gt; являются также основаниями ОПС, тогда число &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt; можно представить в виде&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;A = a_n\cdot p_1\cdot p_2\cdot \ldots \cdot p_{n-1} + a_{n-1}\cdot p_1\cdot p_2\cdot \ldots \cdot p_{n-2} + \ldots + a_3\cdot p_1\cdot p_2 + a_2\cdot p_1 + a_1&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
где &amp;lt;math&amp;gt;0\le a_k&amp;lt;p_1\cdot p_2\cdot \ldots \cdot p_{k-1}&amp;lt;/math&amp;gt; – коэффициенты (цифры) ОПС.&lt;br /&gt;
&lt;br /&gt;
Очевидно, что диапазоны чисел, представимых в СОК и ОПС совпадают, т.е. можно говорить о наличии взаимно однозначного соответствия между множеством представлений чисел в СОК и ОПС.&lt;br /&gt;
&lt;br /&gt;
Это равенство можно переписать в следующем виде:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;A = a_1 + p_1(a_2 + p_2(a_3 + \ldots +p_{n-2}(a_{n-1} + p_{n-1} a_n) \ldots ))&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
откуда следует, что цифры ОПС могут быть получены из соотношений:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;a_1 = A - \left[ \frac{A}{p_1}\right] \cdot p_1 = A - A_1\cdot p_1&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;A_1 = \left[ \frac{A}{p_1}\right]&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;a_2 = A_1 - \left[ \frac{A_1}{p_2}\right] \cdot p_2 = A_1 - A_2\cdot p_2&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;A_2 = \left[ \frac{A_1}{p_2}\right]&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\ldots&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;a_n = A_{n-1} - \left[ \frac{A_{n-1}}{p_n}\right] \cdot p_n = A_{n-1} - A_n\cdot p_n&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;A_n = \left[ \frac{A_{n-1}}{p_n}\right]&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Причем при определении цифр &amp;lt;math&amp;gt;a_i&amp;lt;/math&amp;gt; по этим формулам все вычисления можно вести в СОК.&lt;br /&gt;
&lt;br /&gt;
Смотри [[Перевод числа из СОК в обобщенную позиционную систему|Перевод числа из СОК в обобщенную позиционную систему]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Интервальные методы перевода'''&lt;br /&gt;
&lt;br /&gt;
Достаточно эффективными методами перевода чисел из СОК в ПСС являются интервальные методы, основанные на интервальных характеристиках чисел. Одна из таких характеристик – номер интервала.&lt;br /&gt;
&lt;br /&gt;
Смотри [[Интервальные методы перевода|Интервальные методы перевода]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Расширение диапазона представления чисел ==&lt;br /&gt;
&lt;br /&gt;
Расширение системы оснований является одной из основных немодульных операций в СОК. Выполнение этой операции бывает необходимо при выполнении операции деления чисел, при вычислении позиционных характеристик, при обнаружении переполнения при выполнении сложения или умножения чисел.&lt;br /&gt;
&lt;br /&gt;
Задачу расширения системы оснований можно сформулировать следующим образом: найти остаточное представление числа по новому основанию (новым основаниям), если известно представление числа по другим основаниям остатки от деления на другие числа.&lt;br /&gt;
Один из путей расширения системы оснований состоит в переводе числа в позиционную систему счисления и вычисления остатка от деления на новый модуль. Этот путь не является рациональным с точки зрения числа операций.&lt;br /&gt;
&lt;br /&gt;
Другой метод расширения системы оснований позволяет определить цифру числа по новому основанию, базируясь на таких позиционных характеристиках числа, как ранг числа, след числа. &lt;br /&gt;
&lt;br /&gt;
Смотри [[Расширение диапазона представления чисел|Расширение диапазона представления чисел]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Литература =&lt;/div&gt;</summary>
		<author><name>Isaeva</name></author>	</entry>

	<entry>
		<id>https://vscripts.ru/w/%D0%9F%D0%BE%D0%BB%D0%B8%D0%B0%D0%B4%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B9_%D0%BA%D0%BE%D0%B4</id>
		<title>Полиадический код</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%9F%D0%BE%D0%BB%D0%B8%D0%B0%D0%B4%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B9_%D0%BA%D0%BE%D0%B4"/>
				<updated>2015-02-12T09:24:01Z</updated>
		
		<summary type="html">&lt;p&gt;Isaeva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Введение ==&lt;br /&gt;
&lt;br /&gt;
'''Полиадический код''' (или система счисления со смешанным основанием от англ. [http://en.wikipedia.org/wiki/Residue_number_system#Associated_mixed_radix_system associated mixed radix system (AMRS)])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Основанием смешанной системы счисления является возрастающая последовательность чисел &amp;lt;math&amp;gt;\{b_k\}_{k=0}^{\infty}&amp;lt;/math&amp;gt;, и каждое число &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt; в ней представляется как линейная комбинация:&lt;br /&gt;
&amp;lt;math&amp;gt;X = \sum_{k=0}^{n-1} a_{k}b_k&amp;lt;/math&amp;gt;, где на коэффициенты &amp;lt;math&amp;gt;a_{k}&amp;lt;/math&amp;gt;, называемые как и прежде цифрами, накладываются некоторые ограничения.&lt;br /&gt;
Записью числа &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; в смешанной системе счисления называется перечисление его цифр в порядке уменьшения индекса &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt;, начиная с первого ненулевого.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Любое число &amp;lt;math&amp;gt;\{x_1,x_2,x_3,\ldots,x_n\}&amp;lt;/math&amp;gt; в системе остаточных классов может быть представлено в виде полиадического кода&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;X=\sum_{i=1}^Nx_iM_{i-1}=x_1+m_1(x_2+m_2(\cdots+m_{N-1}x_{N})\cdots),&amp;lt;/math&amp;gt;&lt;br /&gt;
где &amp;lt;math&amp;gt;x_k&amp;lt;/math&amp;gt; - цифры кода, числа &amp;lt;math&amp;gt;M_k&amp;lt;/math&amp;gt; - основание смешанной системы счисления:&lt;br /&gt;
:&amp;lt;math&amp;gt;M_0=1,M_i=\prod_{j=1}^i m_j&amp;lt;/math&amp;gt; для &amp;lt;math&amp;gt;i&amp;gt;0&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;0\leq x_i&amp;lt;m_i.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Полиадический код используется для:&lt;br /&gt;
* Сравнения чисел&lt;br /&gt;
* Перевода чисел из системы остаточных классов в обычную позиционную систему счисления&lt;br /&gt;
&lt;br /&gt;
== Обратное преобразование ==&lt;br /&gt;
&lt;br /&gt;
Обратное преобразование на базе полиадического кода, базируется на идее, что любое число X может быть представлено в системе взаимно простых чисел &amp;lt;math&amp;gt;p_1,\ldots, p_n&amp;lt;/math&amp;gt;, как [1]:&lt;br /&gt;
:&amp;lt;math&amp;gt;X = a_1 + a_2\cdot p_1 + a_3\cdot p_1\cdot p_2 + ... + a_{n-1}\cdot p_1\cdot p_2\cdot \ldots\cdot p_{n-2} + a_n\cdot p_1\cdot p_2\cdot \ldots\cdot p_{n-1}&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;0 &amp;lt; a_i &amp;lt; p_i&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;|X|_{p_1} = x_1 = a_1&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;|X - a_1|_{p_2} = |x_2 - a_1|_{p_2} = |a_2\cdot p_1|_{p_2}&amp;lt;/math&amp;gt; =&amp;gt; &amp;lt;math&amp;gt;a_2 = ||p_1^{-1}|_{p_2}\cdot (x_2 - a_1)|_{p_2}&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;|X - a_1 - a_2\cdot p_1|_{p_3} = |a_3\cdot p_1 \cdot p_2|_{p_3}&amp;lt;/math&amp;gt; =&amp;gt; &amp;lt;math&amp;gt;a_3 = ||p_2^{-1}|_{p_3} \cdot (|p_1^{-1}|_{p_3} \cdot (x_3 - a_1) - a_2)|_{p_3}&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;a_4 = ||p_3^{-1}|_{p_4} \cdot (|p_2^{-1}|_{p_4} \cdot (|p_1^{-1}|_{p_4} \cdot (x_3 - a_1) - a_2) - a_3)|_{p_4}&amp;lt;/math&amp;gt;&lt;br /&gt;
* ...&lt;br /&gt;
* &amp;lt;math&amp;gt;a_n = ||p_{n-1}^{-1}|_{p_n} \cdot (|p_{n-2}^{-1}|_{p_n} \cdot ( ... |p_2^{-1}|_{p_n} \cdot (|p_1^{-1}|_{p_n} \cdot (x_n - a_1) - a_2) - ...) - a_{n-1}|_{p_n}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Для использования этого метода требуются константы вида &amp;lt;math&amp;gt;|p_i^{-1}|_{p_k}&amp;lt;/math&amp;gt;. Можно также заметить, что начинать вычисление &amp;lt;math&amp;gt;a_3&amp;lt;/math&amp;gt; можно, как только появилось значение &amp;lt;math&amp;gt;a_1&amp;lt;/math&amp;gt;. На основе этого метода можно строить конвейерные преобразователи.&lt;br /&gt;
&lt;br /&gt;
== Конвейерный преобразователь в полиадический код ==&lt;br /&gt;
&lt;br /&gt;
Используя формулы выше можно нарисовать схему конвейерного преобразователя. В данном случае мы используем модулярный базис из 4 элементов:&lt;br /&gt;
&lt;br /&gt;
[[изображение:Конвейерный преобразователь в полиадический код.png]]&lt;br /&gt;
&lt;br /&gt;
* '''ROMij''' - это таблица выполняющая следующее преобразование &amp;lt;math&amp;gt;r = |(p - q) \cdot p_j^{-1}|_{p_i}&amp;lt;/math&amp;gt;. Для больших значений модулей таблица может быть заменена на последовательный набор арифметических операций (вычитание, умножение на константу и взятие модуля)&lt;br /&gt;
* '''LATCH''' - элемент памяти сохраняющий значение до следующего такта&lt;br /&gt;
* На преобразование модулярного представления в полиадический код требуется N-1 ступеней конвейера.&lt;br /&gt;
&lt;br /&gt;
== Обратный конвейерный преобразователь на базе полиадического кода ==&lt;br /&gt;
&lt;br /&gt;
Этот преобразователь используется для восстановления числа &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt; из модулярного кода, заданного набором остатков &amp;lt;math&amp;gt;(x1, x2, x3, x4)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[изображение:Обратный конвейерный преобразователь на базе полиадического кода.png]]&lt;br /&gt;
* '''ROMij''' - это таблица выполняющая следующее преобразование &amp;lt;math&amp;gt;r = |(p - q) \cdot p_j^{-1}|_{p_i} \cdot (p_1\cdot p_2 \cdot ... \cdot p_{i-1})&amp;lt;/math&amp;gt;. Для больших значений модулей таблица может быть заменена на последовательный набор арифметических операций (вычитание, умножение на константу и взятие модуля)&lt;br /&gt;
* '''LATCH''' - элемент памяти сохраняющий значение до следующего такта&lt;br /&gt;
* '''SUM''' - обычный сумматор&lt;br /&gt;
* На преобразование модулярного представления в позиционный вид требуется N ступеней конвейера. &lt;br /&gt;
* В отличие от преобразования в полиадический код, данный преобразователь получается более громоздким из-за более сложной структуры '''ROMij''' и наличия сумматоров, битовый размер которых растет в нижней части конвейера.&lt;br /&gt;
&lt;br /&gt;
== Коррекция ошибок на базе полиадического кода ==&lt;br /&gt;
&lt;br /&gt;
Пусть задан набор модулей &amp;lt;math&amp;gt;(p_1, p_2, p_3, p_4)&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;(p_1 &amp;lt; p_2 &amp;lt; p_3 &amp;lt; p_4)&amp;lt;/math&amp;gt;. Из них первые два &amp;lt;math&amp;gt;(p_1, p_2)&amp;lt;/math&amp;gt; являются информационными, а последние два &amp;lt;math&amp;gt;(p_3, p_4)&amp;lt;/math&amp;gt; - проверочными. Данный набор позволяет корректировать одиночную ошибку в одном из модулярных каналов. Для коррекции можно использовать следующий наиболее простой подход на базе так называемой &amp;quot;репликации&amp;quot;: из модулярного представления числа &amp;lt;math&amp;gt;(x_1, x_2, x_3, x_4)&amp;lt;/math&amp;gt; последовательно исключается каждый канал, формируя &amp;quot;исключающие наборы&amp;quot;:&lt;br /&gt;
* &amp;lt;math&amp;gt;P_1 = (x_2, x_3, x_4)&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;P_2 = (x_1, x_3, x_4)&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;P_3 = (x_1, x_2, x_4)&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;P_4 = (x_1, x_2, x_3)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Динамический диапазон каждой из троек превышает заданный (можно убедиться для каждой тройки: &amp;lt;math&amp;gt;p_1 \cdot p_2 \cdot p_3 &amp;gt; p_1 \cdot p_2&amp;lt;/math&amp;gt;). В случае если ошибок не было, то при обратном преобразовании в позиционное представление значения всех троек должны лежать в диапазоне: &amp;lt;math&amp;gt;[0 &amp;lt;= X &amp;lt; p_1 \cdot p_2]&amp;lt;/math&amp;gt; и быть равными. В случае, если в одном из каналов произошла ошибка, то правильное значение даст только одна тройка, в которой исключено неверное значение, все остальные тройки будут лежать вне динамического диапазона ('''здесь нужна ссылка на пруФФФФФ или сам пруф''').&lt;br /&gt;
&lt;br /&gt;
В этом случае для восстановления числа требуется сделать 4 обратных преобразователя для каждой из троек. Сравнить полученные значения с &amp;lt;math&amp;gt;p_1 \cdot p_2&amp;lt;/math&amp;gt; и на основании сравнения выдать на выход правильное значение. Однако, как будет показано ниже, корректирующий преобразователь можно значительно сократить по площади, объединив одинаковые части в каждом из обратных преобразователей и рассчитывая финальное позиционное значение только один раз для тройки с правильным значением.&lt;br /&gt;
&lt;br /&gt;
Запишем, полиадическую формулу для каждой из троек:&lt;br /&gt;
* &amp;lt;math&amp;gt;X_{P_1} = {a_1}_{P_1} + {a_2}_{P_1}\cdot p_2 + {a_3}_{P_1}\cdot p_2\cdot p_3&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;X_{P_2} = {a_1}_{P_2} + {a_2}_{P_2}\cdot p_1 + {a_3}_{P_2}\cdot p_1\cdot p_3&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;X_{P_3} = {a_1}_{P_3} + {a_2}_{P_3}\cdot p_1 + {a_3}_{P_3}\cdot p_1\cdot p_2&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;X_{P_4} = {a_1}_{P_4} + {a_2}_{P_4}\cdot p_1 + {a_3}_{P_4}\cdot p_1\cdot p_2&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если посмотреть на самую правое слагаемое каждого из выражений, можно заметить, что если любой из коэффициентов &amp;lt;math&amp;gt;{a_3}_{P_1}, {a_3}_{P_2}, {a_3}_{P_3}, {a_3}_{P_4}&amp;lt;/math&amp;gt; отличается от нуля, то всё выражение получается больше, чем &amp;lt;math&amp;gt;p_1 \cdot p_2&amp;lt;/math&amp;gt;. Из чего следует, что выражение ошибочно. Этот факт можно использовать для определения ошибки, не восстанавливая значение целиком ('''нужен пруф'''). Тем самым можно сократить площадь преобразователя.&lt;br /&gt;
&lt;br /&gt;
== Схема сокращенного преобразователя в полиадический код для коррекции одиночной ошибки ==&lt;br /&gt;
Использовать несколько параллельных преобразователей оказывается неэффективным. Как показано в [2], для этой цели можно использовать сокращенную форму (см. рисунок ниже).&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Конвейерный преобразователь в полиадический код с коррекцией ошибок.png]]&lt;br /&gt;
&lt;br /&gt;
В этом случае на выходных узлах можно получить полиадическое представление для каждого из исключающих наборов &amp;lt;math&amp;gt;(P_1, P_2, P_3, P_4)&amp;lt;/math&amp;gt;:&lt;br /&gt;
* &amp;lt;math&amp;gt;A_{P_1} = \{{a_1}_{P_1}, {a_2}_{P_1}, {a_3}_{P_1}\} = \{S_2(2), S_2(3), S_2(4)\}&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;A_{P_2} = \{{a_1}_{P_2}, {a_2}_{P_2}, {a_3}_{P_2}\} = \{S_1(1), S_3(3), S_3(4)\}&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;A_{P_3} = \{{a_1}_{P_3}, {a_2}_{P_3}, {a_3}_{P_3}\} = \{S_1(1), S_1(2), S_1(4)\}&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;A_{P_4} = \{{a_1}_{P_4}, {a_2}_{P_4}, {a_3}_{P_4}\} = \{S_1(1), S_1(2), S_1(3)\}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для последующего восстановления исходного числа с коррекцией возможной ошибки можно воспользоваться следующим алгоритмом:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;math&amp;gt;if ({a_3}_{P_1} == 0) \{&amp;lt;/math&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;math&amp;gt;X = {a_1}_{P_1} + {a_2}_{P_1}\cdot p_2&amp;lt;/math&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;math&amp;gt;\} else if ({a_3}_{P_2} == 0) \{&amp;lt;/math&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;math&amp;gt;X = {a_1}_{P_2} + {a_2}_{P_2}\cdot p_1&amp;lt;/math&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;math&amp;gt;\} else if ({a_3}_{P_3} == 0) \{&amp;lt;/math&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;math&amp;gt;X = {a_1}_{P_3} + {a_2}_{P_3}\cdot p_1&amp;lt;/math&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;math&amp;gt;\} else if ({a_3}_{P_4} == 0) \{&amp;lt;/math&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;math&amp;gt;X = {a_1}_{P_4} + {a_2}_{P_4}\cdot p_1&amp;lt;/math&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;math&amp;gt;\} else \{&amp;lt;/math&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Ошибка более чем в 1 канале&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;math&amp;gt;\}&amp;lt;/math&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Для произвольного значения &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; схема сокращенного преобразователя в полиадический код строится следующим образом. &lt;br /&gt;
Возьмем систему остатков для следующего набора &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; взаимно простых целых модулей: &amp;lt;math&amp;gt;(p_1, p_2, p_3, ..., p_N)&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;(p_{i+1} &amp;lt; p_{i})&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt; - целое число, такое, что &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; X \leq \prod^{(N-2)}_{i=1} p_{i}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Представление числа &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt; в модулярном виде &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; набором остатков таково: &amp;lt;math&amp;gt;(x_1, x_2, x_3, ..., x_N)&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt; - значение остатка &amp;lt;math&amp;gt;X (mod\  p_i)&amp;lt;/math&amp;gt;. В этом случае 2 цифры остатков избыточны. Данный набор позволяет найти и исправить одиночную ошибку в одном из модулярных каналов. &lt;br /&gt;
&lt;br /&gt;
Для поиска и коррекции ошибок используется преобразование модулярного представления числа в полиадический код. &lt;br /&gt;
&lt;br /&gt;
По набору &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt; создается полиадический код - набор &amp;lt;math&amp;gt;a_i&amp;lt;/math&amp;gt;. Ошибочные каналы модулярного представления определяются следующим образом.&lt;br /&gt;
&lt;br /&gt;
Во-первых, из &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; каналов модулярного представления числа &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt;, создаем &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; наборов по &amp;lt;math&amp;gt;N-1&amp;lt;/math&amp;gt; каналов, причем последовательно исключается каждый канал, формируя так называемые проекции (&amp;quot;исключающие наборы&amp;quot;). Пусть &amp;lt;math&amp;gt;P_i&amp;lt;/math&amp;gt; - проекция, полученная исключением канала &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt;. Преобразуем в полиадический код каждую из проекций &amp;lt;math&amp;gt;P_i&amp;lt;/math&amp;gt;. Если для всех проекций старшие разряды полученного полиадического кода равны нулю, ни в одном канале &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt; ошибки нет. Если полученные старшие разряды ненулевые для всех проекций, кроме &amp;lt;math&amp;gt;P_j&amp;lt;/math&amp;gt;, то в канале &amp;lt;math&amp;gt;x_j&amp;lt;/math&amp;gt; присутствует ошибка, а &amp;lt;math&amp;gt;P_j&amp;lt;/math&amp;gt; - правильное представление числа &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Пусть '''ROMij''' - это любая схема или программа, получающая в момент времени 0 на вход целые &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; и в момент времени &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt; выдающая на выход  &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;r = |(p - q) \cdot p_j^{-1}|_{p_i}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Пусть '''LATCH''' - это любая схема или программа, получающая в момент времени 0 на вход целое число и выдающая это число на выход в момент времени &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Можно получить конвейерную схему, реализующую преобразование в полиадический код, разместив и соединив элементы '''ROMij''' и '''LATCH''', определенные выше, как показано на следующем рисунке. &lt;br /&gt;
&lt;br /&gt;
[[изображение:PoliadicCodeConvGeneralCase.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Назовем эту схему схемой преобразователя в полиадический код размера &amp;lt;math&amp;gt;D&amp;lt;/math&amp;gt;. На вход схемы поступают цифры остатков, обозначенные от &amp;lt;math&amp;gt;I1&amp;lt;/math&amp;gt; до &amp;lt;math&amp;gt;ID&amp;lt;/math&amp;gt;, а выходами являются цифры полиадического кода, обозначенные от &amp;lt;math&amp;gt;O1&amp;lt;/math&amp;gt; до &amp;lt;math&amp;gt;OD&amp;lt;/math&amp;gt;. Больший индекс соответствует старшему разряду. &amp;lt;math&amp;gt;D&amp;lt;/math&amp;gt; столбцов рассматриваются от &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; до &amp;lt;math&amp;gt;D&amp;lt;/math&amp;gt;, причем столбец &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; принимает младший вход. &amp;lt;math&amp;gt;D-1&amp;lt;/math&amp;gt; ступеней конвейера рассматриваются от &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; до &amp;lt;math&amp;gt;D-1&amp;lt;/math&amp;gt;, причем входы схемы поступают на ступень &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt;. Каждая ступень конвейера срабатывает за время &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt;. Каждая ступень конвейера состоит из некоторого числа элементов '''ROMij''' и '''LATCH''', на входы которых поступают выходы предыдущей ступени, а выходы передаются на входы следующей ступени. Элемент с индексами '''i.j''' - это '''ROMij''', если &amp;lt;math&amp;gt;i&amp;gt;j&amp;lt;/math&amp;gt;, или '''LATCH''', в противном случае. Левый вход элемента '''ROMij''' - &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;, правый - &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Для произвольного значения &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; схема сокращенного преобразователя в полиадический код - это конвейерная схема из &amp;lt;math&amp;gt;N-2&amp;lt;/math&amp;gt; ступеней, содержащая &amp;lt;math&amp;gt;(Y-1)&amp;lt;/math&amp;gt; элементов '''ROMij''' и &amp;lt;math&amp;gt;(Y-N+1)&amp;lt;/math&amp;gt; элементов '''LATCH''', где &amp;lt;math&amp;gt;Y = (N \cdot (N-1) \cdot (N+1))/6&amp;lt;/math&amp;gt;. Входом схемы являются &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; цифр модулярного представления, выходом - &amp;lt;math&amp;gt;(N+1) \cdot (N-1)/2&amp;lt;/math&amp;gt; цифр полиадического кода. Данная реализация преобразователя заключает в себе &amp;lt;math&amp;gt;N-1&amp;lt;/math&amp;gt; подсхем преобразователя в полиадический код, от &amp;lt;math&amp;gt;S_1&amp;lt;/math&amp;gt; до &amp;lt;math&amp;gt;S_{N-1}&amp;lt;/math&amp;gt;. Подсхема &amp;lt;math&amp;gt;S_z&amp;lt;/math&amp;gt; содержит &amp;lt;math&amp;gt;N-z+1&amp;lt;/math&amp;gt; элементов. Элемент '''ROMij''', находящийся в столбце &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt;, ступени &amp;lt;math&amp;gt;v&amp;lt;/math&amp;gt; подсхемы &amp;lt;math&amp;gt;S_z&amp;lt;/math&amp;gt; определяется так:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;i=u+z-1;\ j=v+z-1&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Входами подсхемы &amp;lt;math&amp;gt;S_1&amp;lt;/math&amp;gt; являются цифры от &amp;lt;math&amp;gt;x_1&amp;lt;/math&amp;gt; до &amp;lt;math&amp;gt;x_N&amp;lt;/math&amp;gt;. Подсхема &amp;lt;math&amp;gt;S_1&amp;lt;/math&amp;gt; представляет собой особый случай, поскольку сокращена на одну ступень, ее выходы формируются после &amp;lt;math&amp;gt;N-2&amp;lt;/math&amp;gt; ступени: это цифры полиадического кода от &amp;lt;math&amp;gt;S_{1}(1)&amp;lt;/math&amp;gt; до &amp;lt;math&amp;gt;S_1(N)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Входами подсхемы &amp;lt;math&amp;gt;S_i, i&amp;gt;1&amp;lt;/math&amp;gt; являются &amp;lt;math&amp;gt;N-i+1&amp;lt;/math&amp;gt; p-входов &amp;lt;math&amp;gt;i-1&amp;lt;/math&amp;gt; ступени подсхемы &amp;lt;math&amp;gt;S_1&amp;lt;/math&amp;gt;. Выходы подсхемы &amp;lt;math&amp;gt;S_i, i&amp;gt;1&amp;lt;/math&amp;gt;: от &amp;lt;math&amp;gt;S_{i}(i)&amp;lt;/math&amp;gt; до &amp;lt;math&amp;gt;S_i(N)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Выходы рассмотренной схемы преобразователя необходимы и достаточны для того, чтобы получить полиадическое представление всех проекций. Цифры полиадического кода проекции &amp;lt;math&amp;gt;P_{N}&amp;lt;/math&amp;gt; таковы: от &amp;lt;math&amp;gt;S_{1}(1)&amp;lt;/math&amp;gt; до &amp;lt;math&amp;gt;S_1(N-1)&amp;lt;/math&amp;gt;. Цифры полиадического кода проекции &amp;lt;math&amp;gt;P_{N-1}&amp;lt;/math&amp;gt; таковы: от &amp;lt;math&amp;gt;S_{1}(1)&amp;lt;/math&amp;gt; до &amp;lt;math&amp;gt;S_1(N-2)&amp;lt;/math&amp;gt;, и &amp;lt;math&amp;gt;S_1(N-1)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Цифры полиадического кода проекции &amp;lt;math&amp;gt;P_{i}, i&amp;lt;N-1&amp;lt;/math&amp;gt; таковы: от &amp;lt;math&amp;gt;S_{1}(1)&amp;lt;/math&amp;gt; до &amp;lt;math&amp;gt;S_1(i-1)&amp;lt;/math&amp;gt;, если &amp;lt;math&amp;gt;i&amp;gt;1&amp;lt;/math&amp;gt;, и от &amp;lt;math&amp;gt;S_1(i+1)&amp;lt;/math&amp;gt; до &amp;lt;math&amp;gt;S_1(N)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Данный преобразователь может быть реализован следующим образом:&lt;br /&gt;
&lt;br /&gt;
Во-первых, при помощи преобразования в полиадический код определяются &amp;lt;math&amp;gt;N-1&amp;lt;/math&amp;gt; цифр полиадического кода, которые должны быть вычислены для каждой из &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; проекций. Затем каждая из цифр выражается через элементы, необходимые для ее вычисления. &lt;br /&gt;
&lt;br /&gt;
Во-вторых, выявляются уникальные подформулы.&lt;br /&gt;
&lt;br /&gt;
В-третьих, первая ступень преобразователя строится размещением и соединением элементов, соответствующих уникальным подформулам первого порядка (наибольшей вложенности).&lt;br /&gt;
&lt;br /&gt;
В-четвертых, вторая ступень преобразователя строится размещением и соединением элементов, соответствующих уникальным подформулам второго порядка. &lt;br /&gt;
&lt;br /&gt;
Процесс продолжается до тех пор, пока не будут построены все &amp;lt;math&amp;gt;N-1&amp;lt;/math&amp;gt; ступеней. Затем там, где необходимо, добавляются элементы '''LATCH''', чтобы передать все цифры полиадического кода до конца конвейера.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Простой метод, основанный на репликации, требует &amp;lt;math&amp;gt;X = (N \cdot (N-1) \cdot (N-2))/2&amp;lt;/math&amp;gt; LUT и ROM. Сокращенный метод требует &amp;lt;math&amp;gt;(Y-1)&amp;lt;/math&amp;gt; ROM и &amp;lt;math&amp;gt;(Y-N+1)&amp;lt;/math&amp;gt; LUT, где &amp;lt;math&amp;gt;Y = (N \cdot (N-1) \cdot (N+1))/6&amp;lt;/math&amp;gt;. Количество уровней обоих методов совпадает, и для реализации используются одинаковые элементы, поэтому тактовая частота работы после сокращения площади не изменится.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table style=&amp;quot;border: 1px solid black; padding: 3px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border: 1px solid black; padding: 3px;&amp;quot;&amp;gt;N&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border: 1px solid black; padding: 3px;&amp;quot;&amp;gt;4&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border: 1px solid black; padding: 3px;&amp;quot;&amp;gt;5&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border: 1px solid black; padding: 3px;&amp;quot;&amp;gt;6&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border: 1px solid black; padding: 3px;&amp;quot;&amp;gt;7&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border: 1px solid black; padding: 3px;&amp;quot;&amp;gt;10&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border: 1px solid black; padding: 3px;&amp;quot;&amp;gt;Репликация (кол-во ROM/LUT)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border: 1px solid black; padding: 3px;&amp;quot;&amp;gt;12&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border: 1px solid black; padding: 3px;&amp;quot;&amp;gt;30&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border: 1px solid black; padding: 3px;&amp;quot;&amp;gt;60&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border: 1px solid black; padding: 3px;&amp;quot;&amp;gt;105&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border: 1px solid black; padding: 3px;&amp;quot;&amp;gt;360&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border: 1px solid black; padding: 3px;&amp;quot;&amp;gt;Метод сокращения (кол-во ROM)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border: 1px solid black; padding: 3px;&amp;quot;&amp;gt;9&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border: 1px solid black; padding: 3px;&amp;quot;&amp;gt;19&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border: 1px solid black; padding: 3px;&amp;quot;&amp;gt;34&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border: 1px solid black; padding: 3px;&amp;quot;&amp;gt;55&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border: 1px solid black; padding: 3px;&amp;quot;&amp;gt;164&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border: 1px solid black; padding: 3px;&amp;quot;&amp;gt;Метод сокращения (кол-во LUT)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border: 1px solid black; padding: 3px;&amp;quot;&amp;gt;7&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border: 1px solid black; padding: 3px;&amp;quot;&amp;gt;16&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border: 1px solid black; padding: 3px;&amp;quot;&amp;gt;30&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border: 1px solid black; padding: 3px;&amp;quot;&amp;gt;50&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border: 1px solid black; padding: 3px;&amp;quot;&amp;gt;156&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
* [1] M. A. Soderstrand, W. K. Jenkins, G. A. Jullien and F. J. Taylor. 1986. Residue Number System Arithmetic: Modern Applications in Digital Signal Processing, IEEE Press, New York.&lt;br /&gt;
* [2] [https://docs.google.com/viewer?url=patentimages.storage.googleapis.com/pdfs/US4752904.pdf Патент &amp;quot;Efficient structure for computing mixed-radix projections from residue number systems&amp;quot;]&lt;/div&gt;</summary>
		<author><name>Isaeva</name></author>	</entry>

	<entry>
		<id>https://vscripts.ru/w/%D0%9F%D0%BE%D0%BB%D0%B8%D0%B0%D0%B4%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B9_%D0%BA%D0%BE%D0%B4</id>
		<title>Полиадический код</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%9F%D0%BE%D0%BB%D0%B8%D0%B0%D0%B4%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B9_%D0%BA%D0%BE%D0%B4"/>
				<updated>2015-02-12T09:13:14Z</updated>
		
		<summary type="html">&lt;p&gt;Isaeva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Введение ==&lt;br /&gt;
&lt;br /&gt;
'''Полиадический код''' (или система счисления со смешанным основанием от англ. [http://en.wikipedia.org/wiki/Residue_number_system#Associated_mixed_radix_system associated mixed radix system (AMRS)])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Основанием смешанной системы счисления является возрастающая последовательность чисел &amp;lt;math&amp;gt;\{b_k\}_{k=0}^{\infty}&amp;lt;/math&amp;gt;, и каждое число &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt; в ней представляется как линейная комбинация:&lt;br /&gt;
&amp;lt;math&amp;gt;X = \sum_{k=0}^{n-1} a_{k}b_k&amp;lt;/math&amp;gt;, где на коэффициенты &amp;lt;math&amp;gt;a_{k}&amp;lt;/math&amp;gt;, называемые как и прежде цифрами, накладываются некоторые ограничения.&lt;br /&gt;
Записью числа &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; в смешанной системе счисления называется перечисление его цифр в порядке уменьшения индекса &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt;, начиная с первого ненулевого.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Любое число &amp;lt;math&amp;gt;\{y_1,y_2,y_3,\ldots,y_n\}&amp;lt;/math&amp;gt; в системе остаточных классов может быть представленно в виде полиадического кода&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;X=\sum_{i=1}^Nx_iM_{i-1}=x_1+m_1(x_2+m_2(\cdots+m_{N-1}x_{N})\cdots),&amp;lt;/math&amp;gt;&lt;br /&gt;
где &amp;lt;math&amp;gt;x_k&amp;lt;/math&amp;gt; - цифры полиадического кода, числа &amp;lt;math&amp;gt;M_k&amp;lt;/math&amp;gt; - основание смешанной системы счисления:&lt;br /&gt;
:&amp;lt;math&amp;gt;M_0=1,M_i=\prod_{j=1}^i m_j&amp;lt;/math&amp;gt; для &amp;lt;math&amp;gt;i&amp;gt;0&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;0\leq x_i&amp;lt;m_i.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Полиадический код используется для:&lt;br /&gt;
* Сравнения чисел&lt;br /&gt;
* Перевода чисел из системы остаточных классов в обычную позиционную систему счисления&lt;br /&gt;
&lt;br /&gt;
== Обратное преобразование ==&lt;br /&gt;
&lt;br /&gt;
Обратное преобразование на базе полиадического кода, базируется на идее, что любое число X может быть представлено в системе взаимно простых чисел &amp;lt;math&amp;gt;p_1,\ldots, p_n&amp;lt;/math&amp;gt;, как [1]:&lt;br /&gt;
:&amp;lt;math&amp;gt;X = a_1 + a_2\cdot p_1 + a_3\cdot p_1\cdot p_2 + ... + a_{n-1}\cdot p_1\cdot p_2\cdot \ldots\cdot p_{n-2} + a_n\cdot p_1\cdot p_2\cdot \ldots\cdot p_{n-1}&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;0 &amp;lt; a_i &amp;lt; p_i&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;|X|_{p_1} = x_1 = a_1&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;|X - a_1|_{p_2} = |x_2 - a_1|_{p_2} = |a_2\cdot p_1|_{p_2}&amp;lt;/math&amp;gt; =&amp;gt; &amp;lt;math&amp;gt;a_2 = ||p_1^{-1}|_{p_2}\cdot (x_2 - a_1)|_{p_2}&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;|X - a_1 - a_2\cdot p_1|_{p_3} = |a_3\cdot p_1 \cdot p_2|_{p_3}&amp;lt;/math&amp;gt; =&amp;gt; &amp;lt;math&amp;gt;a_3 = ||p_2^{-1}|_{p_3} \cdot (|p_1^{-1}|_{p_3} \cdot (x_3 - a_1) - a_2)|_{p_3}&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;a_4 = ||p_3^{-1}|_{p_4} \cdot (|p_2^{-1}|_{p_4} \cdot (|p_1^{-1}|_{p_4} \cdot (x_3 - a_1) - a_2) - a_3)|_{p_4}&amp;lt;/math&amp;gt;&lt;br /&gt;
* ...&lt;br /&gt;
* &amp;lt;math&amp;gt;a_n = ||p_{n-1}^{-1}|_{p_n} \cdot (|p_{n-2}^{-1}|_{p_n} \cdot ( ... |p_2^{-1}|_{p_n} \cdot (|p_1^{-1}|_{p_n} \cdot (x_n - a_1) - a_2) - ...) - a_{n-1}|_{p_n}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Для использования этого метода требуются константы вида &amp;lt;math&amp;gt;|p_i^{-1}|_{p_k}&amp;lt;/math&amp;gt;. Можно также заметить, что начинать вычисление &amp;lt;math&amp;gt;a_3&amp;lt;/math&amp;gt; можно, как только появилось значение &amp;lt;math&amp;gt;a_1&amp;lt;/math&amp;gt;. На основе этого метода можно строить конвейерные преобразователи.&lt;br /&gt;
&lt;br /&gt;
== Конвейерный преобразователь в полиадический код ==&lt;br /&gt;
&lt;br /&gt;
Используя формулы выше можно нарисовать схему конвейерного преобразователя. В данном случае мы используем модулярный базис из 4 элементов:&lt;br /&gt;
&lt;br /&gt;
[[изображение:Конвейерный преобразователь в полиадический код.png]]&lt;br /&gt;
&lt;br /&gt;
* '''ROMij''' - это таблица выполняющая следующее преобразование &amp;lt;math&amp;gt;r = |(p - q) \cdot p_j^{-1}|_{p_i}&amp;lt;/math&amp;gt;. Для больших значений модулей таблица может быть заменена на последовательный набор арифметических операций (вычитание, умножение на константу и взятие модуля)&lt;br /&gt;
* '''LATCH''' - элемент памяти сохраняющий значение до следующего такта&lt;br /&gt;
* На преобразование модулярного представления в полиадический код требуется N-1 ступеней конвейера.&lt;br /&gt;
&lt;br /&gt;
== Обратный конвейерный преобразователь на базе полиадического кода ==&lt;br /&gt;
&lt;br /&gt;
Этот преобразователь используется для восстановления числа &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt; из модулярного кода, заданного набором остатков &amp;lt;math&amp;gt;(x1, x2, x3, x4)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[изображение:Обратный конвейерный преобразователь на базе полиадического кода.png]]&lt;br /&gt;
* '''ROMij''' - это таблица выполняющая следующее преобразование &amp;lt;math&amp;gt;r = |(p - q) \cdot p_j^{-1}|_{p_i} \cdot (p_1\cdot p_2 \cdot ... \cdot p_{i-1})&amp;lt;/math&amp;gt;. Для больших значений модулей таблица может быть заменена на последовательный набор арифметических операций (вычитание, умножение на константу и взятие модуля)&lt;br /&gt;
* '''LATCH''' - элемент памяти сохраняющий значение до следующего такта&lt;br /&gt;
* '''SUM''' - обычный сумматор&lt;br /&gt;
* На преобразование модулярного представления в позиционный вид требуется N ступеней конвейера. &lt;br /&gt;
* В отличие от преобразования в полиадический код, данный преобразователь получается более громоздким из-за более сложной структуры '''ROMij''' и наличия сумматоров, битовый размер которых растет в нижней части конвейера.&lt;br /&gt;
&lt;br /&gt;
== Коррекция ошибок на базе полиадического кода ==&lt;br /&gt;
&lt;br /&gt;
Пусть задан набор модулей &amp;lt;math&amp;gt;(p_1, p_2, p_3, p_4)&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;(p_1 &amp;lt; p_2 &amp;lt; p_3 &amp;lt; p_4)&amp;lt;/math&amp;gt;. Из них первые два &amp;lt;math&amp;gt;(p_1, p_2)&amp;lt;/math&amp;gt; являются информационными, а последние два &amp;lt;math&amp;gt;(p_3, p_4)&amp;lt;/math&amp;gt; - проверочными. Данный набор позволяет корректировать одиночную ошибку в одном из модулярных каналов. Для коррекции можно использовать следующий наиболее простой подход на базе так называемой &amp;quot;репликации&amp;quot;: из модулярного представления числа &amp;lt;math&amp;gt;(x_1, x_2, x_3, x_4)&amp;lt;/math&amp;gt; последовательно исключается каждый канал, формируя &amp;quot;исключающие наборы&amp;quot;:&lt;br /&gt;
* &amp;lt;math&amp;gt;P_1 = (x_2, x_3, x_4)&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;P_2 = (x_1, x_3, x_4)&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;P_3 = (x_1, x_2, x_4)&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;P_4 = (x_1, x_2, x_3)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Динамический диапазон каждой из троек превышает заданный (можно убедиться для каждой тройки: &amp;lt;math&amp;gt;p_1 \cdot p_2 \cdot p_3 &amp;gt; p_1 \cdot p_2&amp;lt;/math&amp;gt;). В случае если ошибок не было, то при обратном преобразовании в позиционное представление значения всех троек должны лежать в диапазоне: &amp;lt;math&amp;gt;[0 &amp;lt;= X &amp;lt; p_1 \cdot p_2]&amp;lt;/math&amp;gt; и быть равными. В случае, если в одном из каналов произошла ошибка, то правильное значение даст только одна тройка, в которой исключено неверное значение, все остальные тройки будут лежать вне динамического диапазона ('''здесь нужна ссылка на пруФФФФФ или сам пруф''').&lt;br /&gt;
&lt;br /&gt;
В этом случае для восстановления числа требуется сделать 4 обратных преобразователя для каждой из троек. Сравнить полученные значения с &amp;lt;math&amp;gt;p_1 \cdot p_2&amp;lt;/math&amp;gt; и на основании сравнения выдать на выход правильное значение. Однако, как будет показано ниже, корректирующий преобразователь можно значительно сократить по площади, объединив одинаковые части в каждом из обратных преобразователей и рассчитывая финальное позиционное значение только один раз для тройки с правильным значением.&lt;br /&gt;
&lt;br /&gt;
Запишем, полиадическую формулу для каждой из троек:&lt;br /&gt;
* &amp;lt;math&amp;gt;X_{P_1} = {a_1}_{P_1} + {a_2}_{P_1}\cdot p_2 + {a_3}_{P_1}\cdot p_2\cdot p_3&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;X_{P_2} = {a_1}_{P_2} + {a_2}_{P_2}\cdot p_1 + {a_3}_{P_2}\cdot p_1\cdot p_3&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;X_{P_3} = {a_1}_{P_3} + {a_2}_{P_3}\cdot p_1 + {a_3}_{P_3}\cdot p_1\cdot p_2&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;X_{P_4} = {a_1}_{P_4} + {a_2}_{P_4}\cdot p_1 + {a_3}_{P_4}\cdot p_1\cdot p_2&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если посмотреть на самую правое слагаемое каждого из выражений, можно заметить, что если любой из коэффициентов &amp;lt;math&amp;gt;{a_3}_{P_1}, {a_3}_{P_2}, {a_3}_{P_3}, {a_3}_{P_4}&amp;lt;/math&amp;gt; отличается от нуля, то всё выражение получается больше, чем &amp;lt;math&amp;gt;p_1 \cdot p_2&amp;lt;/math&amp;gt;. Из чего следует, что выражение ошибочно. Этот факт можно использовать для определения ошибки, не восстанавливая значение целиком ('''нужен пруф'''). Тем самым можно сократить площадь преобразователя.&lt;br /&gt;
&lt;br /&gt;
== Схема сокращенного преобразователя в полиадический код для коррекции одиночной ошибки ==&lt;br /&gt;
Использовать несколько параллельных преобразователей оказывается неэффективным. Как показано в [2], для этой цели можно использовать сокращенную форму (см. рисунок ниже).&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Конвейерный преобразователь в полиадический код с коррекцией ошибок.png]]&lt;br /&gt;
&lt;br /&gt;
В этом случае на выходных узлах можно получить полиадическое представление для каждого из исключающих наборов &amp;lt;math&amp;gt;(P_1, P_2, P_3, P_4)&amp;lt;/math&amp;gt;:&lt;br /&gt;
* &amp;lt;math&amp;gt;A_{P_1} = \{{a_1}_{P_1}, {a_2}_{P_1}, {a_3}_{P_1}\} = \{S_2(2), S_2(3), S_2(4)\}&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;A_{P_2} = \{{a_1}_{P_2}, {a_2}_{P_2}, {a_3}_{P_2}\} = \{S_1(1), S_3(3), S_3(4)\}&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;A_{P_3} = \{{a_1}_{P_3}, {a_2}_{P_3}, {a_3}_{P_3}\} = \{S_1(1), S_1(2), S_1(4)\}&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;A_{P_4} = \{{a_1}_{P_4}, {a_2}_{P_4}, {a_3}_{P_4}\} = \{S_1(1), S_1(2), S_1(3)\}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для последующего восстановления исходного числа с коррекцией возможной ошибки можно воспользоваться следующим алгоритмом:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;math&amp;gt;if ({a_3}_{P_1} == 0) \{&amp;lt;/math&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;math&amp;gt;X = {a_1}_{P_1} + {a_2}_{P_1}\cdot p_2&amp;lt;/math&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;math&amp;gt;\} else if ({a_3}_{P_2} == 0) \{&amp;lt;/math&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;math&amp;gt;X = {a_1}_{P_2} + {a_2}_{P_2}\cdot p_1&amp;lt;/math&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;math&amp;gt;\} else if ({a_3}_{P_3} == 0) \{&amp;lt;/math&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;math&amp;gt;X = {a_1}_{P_3} + {a_2}_{P_3}\cdot p_1&amp;lt;/math&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;math&amp;gt;\} else if ({a_3}_{P_4} == 0) \{&amp;lt;/math&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;math&amp;gt;X = {a_1}_{P_4} + {a_2}_{P_4}\cdot p_1&amp;lt;/math&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;math&amp;gt;\} else \{&amp;lt;/math&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Ошибка более чем в 1 канале&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;math&amp;gt;\}&amp;lt;/math&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Для произвольного значения &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; схема сокращенного преобразователя в полиадический код строится следующим образом. &lt;br /&gt;
Возьмем систему остатков для следующего набора &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; взаимно простых целых модулей: &amp;lt;math&amp;gt;(p_1, p_2, p_3, ..., p_N)&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;(p_{i+1} &amp;lt; p_{i})&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt; - целое число, такое, что &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; X \leq \prod^{(N-2)}_{i=1} p_{i}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Представление числа &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt; в модулярном виде &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; набором остатков таково: &amp;lt;math&amp;gt;(x_1, x_2, x_3, ..., x_N)&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt; - значение остатка &amp;lt;math&amp;gt;X (mod\  p_i)&amp;lt;/math&amp;gt;. В этом случае 2 цифры остатков избыточны. Данный набор позволяет найти и исправить одиночную ошибку в одном из модулярных каналов. &lt;br /&gt;
&lt;br /&gt;
Для поиска и коррекции ошибок используется преобразование модулярного представления числа в полиадический код. &lt;br /&gt;
&lt;br /&gt;
По набору &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt; создается полиадический код - набор &amp;lt;math&amp;gt;a_i&amp;lt;/math&amp;gt;. Ошибочные каналы модулярного представления определяются следующим образом.&lt;br /&gt;
&lt;br /&gt;
Во-первых, из &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; каналов модулярного представления числа &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt;, создаем &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; наборов по &amp;lt;math&amp;gt;N-1&amp;lt;/math&amp;gt; каналов, причем последовательно исключается каждый канал, формируя так называемые проекции (&amp;quot;исключающие наборы&amp;quot;). Пусть &amp;lt;math&amp;gt;P_i&amp;lt;/math&amp;gt; - проекция, полученная исключением канала &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt;. Преобразуем в полиадический код каждую из проекций &amp;lt;math&amp;gt;P_i&amp;lt;/math&amp;gt;. Если для всех проекций старшие разряды полученного полиадического кода равны нулю, ни в одном канале &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt; ошибки нет. Если полученные старшие разряды ненулевые для всех проекций, кроме &amp;lt;math&amp;gt;P_j&amp;lt;/math&amp;gt;, то в канале &amp;lt;math&amp;gt;x_j&amp;lt;/math&amp;gt; присутствует ошибка, а &amp;lt;math&amp;gt;P_j&amp;lt;/math&amp;gt; - правильное представление числа &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Пусть '''ROMij''' - это любая схема или программа, получающая в момент времени 0 на вход целые &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; и в момент времени &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt; выдающая на выход  &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;r = |(p - q) \cdot p_j^{-1}|_{p_i}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Пусть '''LATCH''' - это любая схема или программа, получающая в момент времени 0 на вход целое число и выдающая это число на выход в момент времени &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Можно получить конвейерную схему, реализующую преобразование в полиадический код, разместив и соединив элементы '''ROMij''' и '''LATCH''', определенные выше, как показано на следующем рисунке. &lt;br /&gt;
&lt;br /&gt;
[[изображение:PoliadicCodeConvGeneralCase.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Назовем эту схему схемой преобразователя в полиадический код размера &amp;lt;math&amp;gt;D&amp;lt;/math&amp;gt;. На вход схемы поступают цифры остатков, обозначенные от &amp;lt;math&amp;gt;I1&amp;lt;/math&amp;gt; до &amp;lt;math&amp;gt;ID&amp;lt;/math&amp;gt;, а выходами являются цифры полиадического кода, обозначенные от &amp;lt;math&amp;gt;O1&amp;lt;/math&amp;gt; до &amp;lt;math&amp;gt;OD&amp;lt;/math&amp;gt;. Больший индекс соответствует старшему разряду. &amp;lt;math&amp;gt;D&amp;lt;/math&amp;gt; столбцов рассматриваются от &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; до &amp;lt;math&amp;gt;D&amp;lt;/math&amp;gt;, причем столбец &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; принимает младший вход. &amp;lt;math&amp;gt;D-1&amp;lt;/math&amp;gt; ступеней конвейера рассматриваются от &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; до &amp;lt;math&amp;gt;D-1&amp;lt;/math&amp;gt;, причем входы схемы поступают на ступень &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt;. Каждая ступень конвейера срабатывает за время &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt;. Каждая ступень конвейера состоит из некоторого числа элементов '''ROMij''' и '''LATCH''', на входы которых поступают выходы предыдущей ступени, а выходы передаются на входы следующей ступени. Элемент с индексами '''i.j''' - это '''ROMij''', если &amp;lt;math&amp;gt;i&amp;gt;j&amp;lt;/math&amp;gt;, или '''LATCH''', в противном случае. Левый вход элемента '''ROMij''' - &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;, правый - &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Для произвольного значения &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; схема сокращенного преобразователя в полиадический код - это конвейерная схема из &amp;lt;math&amp;gt;N-2&amp;lt;/math&amp;gt; ступеней, содержащая &amp;lt;math&amp;gt;(Y-1)&amp;lt;/math&amp;gt; элементов '''ROMij''' и &amp;lt;math&amp;gt;(Y-N+1)&amp;lt;/math&amp;gt; элементов '''LATCH''', где &amp;lt;math&amp;gt;Y = (N \cdot (N-1) \cdot (N+1))/6&amp;lt;/math&amp;gt;. Входом схемы являются &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; цифр модулярного представления, выходом - &amp;lt;math&amp;gt;(N+1) \cdot (N-1)/2&amp;lt;/math&amp;gt; цифр полиадического кода. Данная реализация преобразователя заключает в себе &amp;lt;math&amp;gt;N-1&amp;lt;/math&amp;gt; подсхем преобразователя в полиадический код, от &amp;lt;math&amp;gt;S_1&amp;lt;/math&amp;gt; до &amp;lt;math&amp;gt;S_{N-1}&amp;lt;/math&amp;gt;. Подсхема &amp;lt;math&amp;gt;S_z&amp;lt;/math&amp;gt; содержит &amp;lt;math&amp;gt;N-z+1&amp;lt;/math&amp;gt; элементов. Элемент '''ROMij''', находящийся в столбце &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt;, ступени &amp;lt;math&amp;gt;v&amp;lt;/math&amp;gt; подсхемы &amp;lt;math&amp;gt;S_z&amp;lt;/math&amp;gt; определяется так:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;i=u+z-1;\ j=v+z-1&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Входами подсхемы &amp;lt;math&amp;gt;S_1&amp;lt;/math&amp;gt; являются цифры от &amp;lt;math&amp;gt;x_1&amp;lt;/math&amp;gt; до &amp;lt;math&amp;gt;x_N&amp;lt;/math&amp;gt;. Подсхема &amp;lt;math&amp;gt;S_1&amp;lt;/math&amp;gt; представляет собой особый случай, поскольку сокращена на одну ступень, ее выходы формируются после &amp;lt;math&amp;gt;N-2&amp;lt;/math&amp;gt; ступени: это цифры полиадического кода от &amp;lt;math&amp;gt;S_{1}(1)&amp;lt;/math&amp;gt; до &amp;lt;math&amp;gt;S_1(N)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Входами подсхемы &amp;lt;math&amp;gt;S_i, i&amp;gt;1&amp;lt;/math&amp;gt; являются &amp;lt;math&amp;gt;N-i+1&amp;lt;/math&amp;gt; p-входов &amp;lt;math&amp;gt;i-1&amp;lt;/math&amp;gt; ступени подсхемы &amp;lt;math&amp;gt;S_1&amp;lt;/math&amp;gt;. Выходы подсхемы &amp;lt;math&amp;gt;S_i, i&amp;gt;1&amp;lt;/math&amp;gt;: от &amp;lt;math&amp;gt;S_{i}(i)&amp;lt;/math&amp;gt; до &amp;lt;math&amp;gt;S_i(N)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Выходы рассмотренной схемы преобразователя необходимы и достаточны для того, чтобы получить полиадическое представление всех проекций. Цифры полиадического кода проекции &amp;lt;math&amp;gt;P_{N}&amp;lt;/math&amp;gt; таковы: от &amp;lt;math&amp;gt;S_{1}(1)&amp;lt;/math&amp;gt; до &amp;lt;math&amp;gt;S_1(N-1)&amp;lt;/math&amp;gt;. Цифры полиадического кода проекции &amp;lt;math&amp;gt;P_{N-1}&amp;lt;/math&amp;gt; таковы: от &amp;lt;math&amp;gt;S_{1}(1)&amp;lt;/math&amp;gt; до &amp;lt;math&amp;gt;S_1(N-2)&amp;lt;/math&amp;gt;, и &amp;lt;math&amp;gt;S_1(N-1)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Цифры полиадического кода проекции &amp;lt;math&amp;gt;P_{i}, i&amp;lt;N-1&amp;lt;/math&amp;gt; таковы: от &amp;lt;math&amp;gt;S_{1}(1)&amp;lt;/math&amp;gt; до &amp;lt;math&amp;gt;S_1(i-1)&amp;lt;/math&amp;gt;, если &amp;lt;math&amp;gt;i&amp;gt;1&amp;lt;/math&amp;gt;, и от &amp;lt;math&amp;gt;S_1(i+1)&amp;lt;/math&amp;gt; до &amp;lt;math&amp;gt;S_1(N)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Данный преобразователь может быть реализован следующим образом:&lt;br /&gt;
&lt;br /&gt;
Во-первых, при помощи преобразования в полиадический код определяются &amp;lt;math&amp;gt;N-1&amp;lt;/math&amp;gt; цифр полиадического кода, которые должны быть вычислены для каждой из &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; проекций. Затем каждая из цифр выражается через элементы, необходимые для ее вычисления. &lt;br /&gt;
&lt;br /&gt;
Во-вторых, выявляются уникальные подформулы.&lt;br /&gt;
&lt;br /&gt;
В-третьих, первая ступень преобразователя строится размещением и соединением элементов, соответствующих уникальным подформулам первого порядка (наибольшей вложенности).&lt;br /&gt;
&lt;br /&gt;
В-четвертых, вторая ступень преобразователя строится размещением и соединением элементов, соответствующих уникальным подформулам второго порядка. &lt;br /&gt;
&lt;br /&gt;
Процесс продолжается до тех пор, пока не будут построены все &amp;lt;math&amp;gt;N-1&amp;lt;/math&amp;gt; ступеней. Затем там, где необходимо, добавляются элементы '''LATCH''', чтобы передать все цифры полиадического кода до конца конвейера.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Простой метод, основанный на репликации, требует &amp;lt;math&amp;gt;X = (N \cdot (N-1) \cdot (N-2))/2&amp;lt;/math&amp;gt; LUT и ROM. Сокращенный метод требует &amp;lt;math&amp;gt;(Y-1)&amp;lt;/math&amp;gt; ROM и &amp;lt;math&amp;gt;(Y-N+1)&amp;lt;/math&amp;gt; LUT, где &amp;lt;math&amp;gt;Y = (N \cdot (N-1) \cdot (N+1))/6&amp;lt;/math&amp;gt;. Количество уровней обоих методов совпадает, и для реализации используются одинаковые элементы, поэтому тактовая частота работы после сокращения площади не изменится.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table style=&amp;quot;border: 1px solid black; padding: 3px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border: 1px solid black; padding: 3px;&amp;quot;&amp;gt;N&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border: 1px solid black; padding: 3px;&amp;quot;&amp;gt;4&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border: 1px solid black; padding: 3px;&amp;quot;&amp;gt;5&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border: 1px solid black; padding: 3px;&amp;quot;&amp;gt;6&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border: 1px solid black; padding: 3px;&amp;quot;&amp;gt;7&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border: 1px solid black; padding: 3px;&amp;quot;&amp;gt;10&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border: 1px solid black; padding: 3px;&amp;quot;&amp;gt;Репликация (кол-во ROM/LUT)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border: 1px solid black; padding: 3px;&amp;quot;&amp;gt;12&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border: 1px solid black; padding: 3px;&amp;quot;&amp;gt;30&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border: 1px solid black; padding: 3px;&amp;quot;&amp;gt;60&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border: 1px solid black; padding: 3px;&amp;quot;&amp;gt;105&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border: 1px solid black; padding: 3px;&amp;quot;&amp;gt;360&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border: 1px solid black; padding: 3px;&amp;quot;&amp;gt;Метод сокращения (кол-во ROM)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border: 1px solid black; padding: 3px;&amp;quot;&amp;gt;9&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border: 1px solid black; padding: 3px;&amp;quot;&amp;gt;19&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border: 1px solid black; padding: 3px;&amp;quot;&amp;gt;34&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border: 1px solid black; padding: 3px;&amp;quot;&amp;gt;55&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border: 1px solid black; padding: 3px;&amp;quot;&amp;gt;164&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border: 1px solid black; padding: 3px;&amp;quot;&amp;gt;Метод сокращения (кол-во LUT)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border: 1px solid black; padding: 3px;&amp;quot;&amp;gt;7&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border: 1px solid black; padding: 3px;&amp;quot;&amp;gt;16&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border: 1px solid black; padding: 3px;&amp;quot;&amp;gt;30&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border: 1px solid black; padding: 3px;&amp;quot;&amp;gt;50&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border: 1px solid black; padding: 3px;&amp;quot;&amp;gt;156&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
* [1] M. A. Soderstrand, W. K. Jenkins, G. A. Jullien and F. J. Taylor. 1986. Residue Number System Arithmetic: Modern Applications in Digital Signal Processing, IEEE Press, New York.&lt;br /&gt;
* [2] [https://docs.google.com/viewer?url=patentimages.storage.googleapis.com/pdfs/US4752904.pdf Патент &amp;quot;Efficient structure for computing mixed-radix projections from residue number systems&amp;quot;]&lt;/div&gt;</summary>
		<author><name>Isaeva</name></author>	</entry>

	<entry>
		<id>https://vscripts.ru/w/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BC%D1%83%D0%BB%D1%8C%D1%82%D0%B8%D0%BF%D0%BB%D0%B8%D0%BA%D0%B0%D1%82%D0%B8%D0%B2%D0%BD%D1%8B%D1%85_%D0%BE%D0%B1%D1%80%D0%B0%D1%82%D0%BD%D1%8B%D1%85_%D1%8D%D0%BB%D0%B5%D0%BC%D0%B5%D0%BD%D1%82%D0%BE%D0%B2_%D0%BF%D0%BE_%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%BD%D0%BE%D0%BC%D1%83_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8E</id>
		<title>Вычисление мультипликативных обратных элементов по заданному модулю</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BC%D1%83%D0%BB%D1%8C%D1%82%D0%B8%D0%BF%D0%BB%D0%B8%D0%BA%D0%B0%D1%82%D0%B8%D0%B2%D0%BD%D1%8B%D1%85_%D0%BE%D0%B1%D1%80%D0%B0%D1%82%D0%BD%D1%8B%D1%85_%D1%8D%D0%BB%D0%B5%D0%BC%D0%B5%D0%BD%D1%82%D0%BE%D0%B2_%D0%BF%D0%BE_%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%BD%D0%BE%D0%BC%D1%83_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8E"/>
				<updated>2015-02-04T15:15:42Z</updated>
		
		<summary type="html">&lt;p&gt;Isaeva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Рассмотрим вопрос о мультипликативных обратных элементов по заданному модулю в фактор-кольце &amp;lt;math&amp;gt;Z_p&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Теорема.'''&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;\bar a \in Z_p&amp;lt;/math&amp;gt;, тогда класс &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; имеет мультипликативный обратный элемент по модулю &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; тогда и только тогда, когда &amp;lt;math&amp;gt;(a_1, p) = 1&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Теорема.'''&lt;br /&gt;
&lt;br /&gt;
Характеристика &amp;lt;math&amp;gt;\lambda&amp;lt;/math&amp;gt; конечного поля – простое число.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Рассмотрим два способа вычисления обратных мультипликативных элементов. Первый способ основан на рассмотренном выше алгоритме Евклида, второй – на теореме Эйлера.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Первый способ''&lt;br /&gt;
&lt;br /&gt;
Из условия &amp;lt;math&amp;gt;(a, p) = 1&amp;lt;/math&amp;gt; получаем &amp;lt;math&amp;gt;a \cdot x + p \cdot y = 1&amp;lt;/math&amp;gt; или &amp;lt;math&amp;gt;a \cdot x \equiv 1 \pmod{p}&amp;lt;/math&amp;gt; и, следовательно, &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; – мультипликативный обратный к &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; по модулю &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Второй способ''&lt;br /&gt;
&lt;br /&gt;
Напомним теорему Эйлера.&lt;br /&gt;
&lt;br /&gt;
'''Определение'''&lt;br /&gt;
&lt;br /&gt;
Функция Эйлера &amp;lt;math&amp;gt;\varphi (n)&amp;lt;/math&amp;gt; — это количество чисел от &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; до &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt;, взаимно простых с &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Т.е. это количество таких натуральных чисел из отрезка [1; n], наибольший общий делитель (НОД) которых с &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; равен единице.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Tеоремa Эйлера'''&lt;br /&gt;
&lt;br /&gt;
Если &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; взаимно просты, то &amp;lt;math&amp;gt;a^{\varphi(p)} \equiv 1 \pmod p&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;\varphi (n)&amp;lt;/math&amp;gt; - функция Эйлера.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Доказательство теоремы достаточно простое, возможны различные варианты. Приведем здесь теоретико-числовое доказательство.&lt;br /&gt;
&lt;br /&gt;
''Доказательство.''&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;x_1, \dots, x_{\varphi(p)}&amp;lt;/math&amp;gt; — все различные натуральные числа, меньшие &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; и взаимно простые с ним.&lt;br /&gt;
&lt;br /&gt;
Рассмотрим все возможные произведения &amp;lt;math&amp;gt;x_i a&amp;lt;/math&amp;gt; для всех &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt; от &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; до &amp;lt;math&amp;gt;\varphi(p)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Поскольку &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; взаимно просто с &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt; взаимно просто с &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;, то и &amp;lt;math&amp;gt;x_i a&amp;lt;/math&amp;gt; также взаимно просто с &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;, то есть &amp;lt;math&amp;gt;x_i a \equiv x_j\pmod p&amp;lt;/math&amp;gt; для некоторого &amp;lt;math&amp;gt;j&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Отметим, что все остатки &amp;lt;math&amp;gt;x_i a&amp;lt;/math&amp;gt; при делении на &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; различны. Действительно, пусть это не так, то существуют такие &amp;lt;math&amp;gt;i_1 \neq i_2&amp;lt;/math&amp;gt;, что&lt;br /&gt;
: &amp;lt;math&amp;gt;x_{i_1} a \equiv x_{i_2} a\pmod p&amp;lt;/math&amp;gt;&lt;br /&gt;
или&lt;br /&gt;
: &amp;lt;math&amp;gt;(x_{i_1} - x_{i_2}) a \equiv 0\pmod p&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Так как &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; взаимно просто с &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;, то последнее равенство равносильно тому, что&lt;br /&gt;
: &amp;lt;math&amp;gt;x_{i_1} - x_{i_2} \equiv 0\pmod p&amp;lt;/math&amp;gt; или &amp;lt;math&amp;gt;x_{i_1} \equiv x_{i_2}\pmod p&amp;lt;/math&amp;gt;.&lt;br /&gt;
Это противоречит тому, что числа &amp;lt;math&amp;gt;x_1, \dots, x_{\varphi(p)}&amp;lt;/math&amp;gt; попарно различны по модулю &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Перемножим все сравнения вида &amp;lt;math&amp;gt;x_i a \equiv x_j\pmod p&amp;lt;/math&amp;gt;. Получим:&lt;br /&gt;
: &amp;lt;math&amp;gt;x_1 \cdots x_{\varphi(p)} a^{\varphi(p)} \equiv x_1 \cdots x_{\varphi(p)}\pmod p&amp;lt;/math&amp;gt;&lt;br /&gt;
или&lt;br /&gt;
: &amp;lt;math&amp;gt;x_1 \cdots x_{\varphi(p)} (a^{\varphi(p)}-1) \equiv 0\pmod p&amp;lt;/math&amp;gt;.&lt;br /&gt;
Так как число &amp;lt;math&amp;gt;x_1 \cdots x_{\varphi(p)}&amp;lt;/math&amp;gt; взаимно просто с &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;, то последнее сравнение равносильно тому, что&lt;br /&gt;
: &amp;lt;math&amp;gt;a^{\varphi(p)}-1 \equiv 0\pmod p&amp;lt;/math&amp;gt; &lt;br /&gt;
или &lt;br /&gt;
:&amp;lt;math&amp;gt;a^{\varphi(p)} \equiv 1\pmod p&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В частном случае, когда &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; простое, теорема Эйлера превращается в так называемую малую теорему Ферма:&lt;br /&gt;
&lt;br /&gt;
'''Малая теорема Ферма'''&lt;br /&gt;
&lt;br /&gt;
Если &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; - простое число и &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; - произвольное целое число, не делящееся на &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;, то &amp;lt;math&amp;gt;a^{p-1} \equiv 1 \pmod p &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Следствие.'''&lt;br /&gt;
&lt;br /&gt;
В кольце &amp;lt;math&amp;gt;Z_p&amp;lt;/math&amp;gt; классов вычетов по модулю &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; из &amp;lt;math&amp;gt;(\bar a, p) = 1&amp;lt;/math&amp;gt; следует, что &amp;lt;math&amp;gt;a^{-1} = a^{-{\varphi}(p)-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Таким образом, для вычисления мультипликативного обратного к классу &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; по модулю &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; в случае, когда &amp;lt;math&amp;gt;(\bar a, p) = 1&amp;lt;/math&amp;gt;, достаточно &amp;lt;math&amp;gt;\bar a&amp;lt;/math&amp;gt; возвести в степень &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;k = p-2&amp;lt;/math&amp;gt;, если &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; – простое число, и &amp;lt;math&amp;gt;k = {{\varphi}(p)-1}&amp;lt;/math&amp;gt; в противном случае.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
При таком методе вычисления мультипликативного обратного элемента задача сводится к цепочке умножений и делений с остатком на модуль &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;. Эта задача решается без особых трудностей, если наименьший положительный вычет &amp;lt;math&amp;gt;a \in \bar a&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;(\bar a, p) = 1&amp;lt;/math&amp;gt;, представлен в СОК.&lt;br /&gt;
&lt;br /&gt;
Однако, вообще говоря, &amp;lt;math&amp;gt;{{\varphi}(p)-1}&amp;lt;/math&amp;gt; не является наименьшим показателем степени, для которого &amp;lt;math&amp;gt;(\bar a)^{-1} = (\bar a)^{{\varphi}(p)-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
''Разложение кольца вычетов''&lt;br /&gt;
&lt;br /&gt;
Из китайской теоремы об остатках следует &lt;br /&gt;
&lt;br /&gt;
''Утверждение''&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;p = n_{1}^{l_1} \cdot n_{2}^{l_2} \cdot \ldots \cdot n_{k}^{l_k}&amp;lt;/math&amp;gt; - каноническое представление числа &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;. Тогда функция, которая каждому классу &amp;lt;math&amp;gt;\bar x \in Z_m&amp;lt;/math&amp;gt; ставит в соответствие кортеж &amp;lt;math&amp;gt;(x_1, x_2, \ldots, x_k)&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt; x \equiv x_i \pmod {p_{i}^{l_i}}, i=1, \ldots, k&amp;lt;/math&amp;gt;, является кольцевым изоморфизмом кольца &amp;lt;math&amp;gt;Z_p&amp;lt;/math&amp;gt; класса вычетов по модулю &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; и кольца кортежей вида &amp;lt;math&amp;gt;(x_1, x_2, \ldots, x_k)&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;\bar x \in Z_{p_i^k}, i=1, \ldots, k&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Более того, если обозначить через &amp;lt;math&amp;gt;*&amp;lt;/math&amp;gt; любую из кольцевых операций &amp;lt;math&amp;gt;+&amp;lt;/math&amp;gt; или &amp;lt;math&amp;gt;\cdot&amp;lt;/math&amp;gt; , то &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;(x_1, x_2, \ldots, x_k)*(y_1, y_2, \ldots, y_k) = (x_1 * y_1, x_2 * y_2, \ldots, x_k * y_k)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Таким образом,&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;Z_p \cong Z_{n_1}^{l_1} \times Z_{n_2}^{l_2} \times \ldots \times Z_{n_k}^{l_k}&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
т.е. кольцо классов вычетов по модулю &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; раскладывается в прямое произведение колец классов вычетов по модулям &amp;lt;math&amp;gt;n_{1}^{l_1}, n_{2}^{l_2}, \ldots, n_{k}^{l_k}&amp;lt;/math&amp;gt;. Это разложение колец индуцирует разложение групп их обратимых элементов:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;U_p \cong U_{n_1}^{l_1} \times U_{n_2}^{l_2} \times \ldots \times U_{n_k}^{l_k}&amp;lt;/math&amp;gt;.&lt;/div&gt;</summary>
		<author><name>Isaeva</name></author>	</entry>

	<entry>
		<id>https://vscripts.ru/w/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BC%D1%83%D0%BB%D1%8C%D1%82%D0%B8%D0%BF%D0%BB%D0%B8%D0%BA%D0%B0%D1%82%D0%B8%D0%B2%D0%BD%D1%8B%D1%85_%D0%BE%D0%B1%D1%80%D0%B0%D1%82%D0%BD%D1%8B%D1%85_%D1%8D%D0%BB%D0%B5%D0%BC%D0%B5%D0%BD%D1%82%D0%BE%D0%B2_%D0%BF%D0%BE_%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%BD%D0%BE%D0%BC%D1%83_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8E</id>
		<title>Вычисление мультипликативных обратных элементов по заданному модулю</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BC%D1%83%D0%BB%D1%8C%D1%82%D0%B8%D0%BF%D0%BB%D0%B8%D0%BA%D0%B0%D1%82%D0%B8%D0%B2%D0%BD%D1%8B%D1%85_%D0%BE%D0%B1%D1%80%D0%B0%D1%82%D0%BD%D1%8B%D1%85_%D1%8D%D0%BB%D0%B5%D0%BC%D0%B5%D0%BD%D1%82%D0%BE%D0%B2_%D0%BF%D0%BE_%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%BD%D0%BE%D0%BC%D1%83_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8E"/>
				<updated>2015-02-04T12:25:15Z</updated>
		
		<summary type="html">&lt;p&gt;Isaeva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Рассмотрим вопрос о мультипликативных обратных элементов по заданному модулю в фактор-кольце &amp;lt;math&amp;gt;Z_p&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Теорема.'''&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;\bar a \in Z_p&amp;lt;/math&amp;gt;, тогда класс &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; имеет мультипликативный обратный элемент по модулю &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; тогда и только тогда, когда &amp;lt;math&amp;gt;(a_1, p) = 1&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Теорема.'''&lt;br /&gt;
&lt;br /&gt;
Характеристика &amp;lt;math&amp;gt;\lambda&amp;lt;/math&amp;gt; конечного поля – простое число.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Рассмотрим два способа вычисления обратных мультипликативных элементов. Первый способ основан на рассмотренном выше алгоритме Евклида, второй – на теореме Эйлера.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Первый способ''&lt;br /&gt;
&lt;br /&gt;
Из условия &amp;lt;math&amp;gt;(a, p) = 1&amp;lt;/math&amp;gt; получаем &amp;lt;math&amp;gt;a \cdot x + p \cdot y = 1&amp;lt;/math&amp;gt; или &amp;lt;math&amp;gt;a \cdot x \equiv 1 \pmod{p}&amp;lt;/math&amp;gt; и, следовательно, &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; – мультипликативный обратный к &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; по модулю &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Второй способ''&lt;br /&gt;
&lt;br /&gt;
Напомним теорему Эйлера.&lt;br /&gt;
&lt;br /&gt;
'''Определение'''&lt;br /&gt;
&lt;br /&gt;
Функция Эйлера &amp;lt;math&amp;gt;\varphi (n)&amp;lt;/math&amp;gt; — это количество чисел от &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; до &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt;, взаимно простых с &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Т.е. это количество таких натуральных чисел из отрезка [1; n], наибольший общий делитель (НОД) которых с &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; равен единице.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Tеоремa Эйлера'''&lt;br /&gt;
&lt;br /&gt;
Если &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; взаимно просты, то &amp;lt;math&amp;gt;a^{\varphi(p)} \equiv 1 \pmod p&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;\varphi (n)&amp;lt;/math&amp;gt; - функция Эйлера.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Доказательство теоремы достаточно простое, возможны различные варианты. Приведем здесь теоретико-числовое доказательство.&lt;br /&gt;
&lt;br /&gt;
''Доказательство.''&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;x_1, \dots, x_{\varphi(p)}&amp;lt;/math&amp;gt; — все различные натуральные числа, меньшие &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; и взаимно простые с ним.&lt;br /&gt;
&lt;br /&gt;
Рассмотрим все возможные произведения &amp;lt;math&amp;gt;x_i a&amp;lt;/math&amp;gt; для всех &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt; от &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; до &amp;lt;math&amp;gt;\varphi(p)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Поскольку &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; взаимно просто с &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt; взаимно просто с &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;, то и &amp;lt;math&amp;gt;x_i a&amp;lt;/math&amp;gt; также взаимно просто с &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;, то есть &amp;lt;math&amp;gt;x_i a \equiv x_j\pmod p&amp;lt;/math&amp;gt; для некоторого &amp;lt;math&amp;gt;j&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Отметим, что все остатки &amp;lt;math&amp;gt;x_i a&amp;lt;/math&amp;gt; при делении на &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; различны. Действительно, пусть это не так, то существуют такие &amp;lt;math&amp;gt;i_1 \neq i_2&amp;lt;/math&amp;gt;, что&lt;br /&gt;
: &amp;lt;math&amp;gt;x_{i_1} a \equiv x_{i_2} a\pmod p&amp;lt;/math&amp;gt;&lt;br /&gt;
или&lt;br /&gt;
: &amp;lt;math&amp;gt;(x_{i_1} - x_{i_2}) a \equiv 0\pmod p&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Так как &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; взаимно просто с &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;, то последнее равенство равносильно тому, что&lt;br /&gt;
: &amp;lt;math&amp;gt;x_{i_1} - x_{i_2} \equiv 0\pmod p&amp;lt;/math&amp;gt; или &amp;lt;math&amp;gt;x_{i_1} \equiv x_{i_2}\pmod p&amp;lt;/math&amp;gt;.&lt;br /&gt;
Это противоречит тому, что числа &amp;lt;math&amp;gt;x_1, \dots, x_{\varphi(p)}&amp;lt;/math&amp;gt; попарно различны по модулю &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Перемножим все сравнения вида &amp;lt;math&amp;gt;x_i a \equiv x_j\pmod p&amp;lt;/math&amp;gt;. Получим:&lt;br /&gt;
: &amp;lt;math&amp;gt;x_1 \cdots x_{\varphi(p)} a^{\varphi(p)} \equiv x_1 \cdots x_{\varphi(p)}\pmod p&amp;lt;/math&amp;gt;&lt;br /&gt;
или&lt;br /&gt;
: &amp;lt;math&amp;gt;x_1 \cdots x_{\varphi(p)} (a^{\varphi(p)}-1) \equiv 0\pmod p&amp;lt;/math&amp;gt;.&lt;br /&gt;
Так как число &amp;lt;math&amp;gt;x_1 \cdots x_{\varphi(p)}&amp;lt;/math&amp;gt; взаимно просто с &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;, то последнее сравнение равносильно тому, что&lt;br /&gt;
: &amp;lt;math&amp;gt;a^{\varphi(p)}-1 \equiv 0\pmod p&amp;lt;/math&amp;gt; &lt;br /&gt;
или &lt;br /&gt;
:&amp;lt;math&amp;gt;a^{\varphi(p)} \equiv 1\pmod p&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В частном случае, когда &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; простое, теорема Эйлера превращается в так называемую малую теорему Ферма:&lt;br /&gt;
&lt;br /&gt;
'''Малая теорема Ферма'''&lt;br /&gt;
&lt;br /&gt;
Если &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; - простое число и &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; - произвольное целое число, не делящееся на &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;, то &amp;lt;math&amp;gt;a^{p-1} \equiv 1 \pmod p &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Следствие.'''&lt;br /&gt;
&lt;br /&gt;
В кольце &amp;lt;math&amp;gt;Z_p&amp;lt;/math&amp;gt; классов вычетов по модулю &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; из &amp;lt;math&amp;gt;(\bar a, p) = 1&amp;lt;/math&amp;gt; следует, что &amp;lt;math&amp;gt;a^{-1} = a^{-{\varphi}(p)-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Таким образом, для вычисления мультипликативного обратного к классу &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; по модулю &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; в случае, когда &amp;lt;math&amp;gt;(\bar a, p) = 1&amp;lt;/math&amp;gt;, достаточно &amp;lt;math&amp;gt;\bar a&amp;lt;/math&amp;gt; возвести в степень &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;k = p-2&amp;lt;/math&amp;gt;, если &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; – простое число, и &amp;lt;math&amp;gt;k = {{\varphi}(p)-1}&amp;lt;/math&amp;gt; в противном случае.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
При таком методе вычисления мультипликативного обратного элемента задача сводится к цепочке умножений и делений с остатком на модуль &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;. Эта задача решается без особых трудностей, если наименьший положительный вычет &amp;lt;math&amp;gt;a \in \bar a&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;(\bar a, p) = 1&amp;lt;/math&amp;gt;, представлен в СОК.&lt;br /&gt;
&lt;br /&gt;
Однако, вообще говоря, &amp;lt;math&amp;gt;{{\varphi}(p)-1}&amp;lt;/math&amp;gt; не является наименьшим показателем степени, для которого &amp;lt;math&amp;gt;(\bar a)^{-1} = (\bar a)^{{\varphi}(p)-1}&amp;lt;/math&amp;gt;.&lt;/div&gt;</summary>
		<author><name>Isaeva</name></author>	</entry>

	<entry>
		<id>https://vscripts.ru/w/%D0%9A%D0%B8%D1%82%D0%B0%D0%B9%D1%81%D0%BA%D0%B0%D1%8F_%D1%82%D0%B5%D0%BE%D1%80%D0%B5%D0%BC%D0%B0_%D0%BE%D0%B1_%D0%BE%D1%81%D1%82%D0%B0%D1%82%D0%BA%D0%B0%D1%85</id>
		<title>Китайская теорема об остатках</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%9A%D0%B8%D1%82%D0%B0%D0%B9%D1%81%D0%BA%D0%B0%D1%8F_%D1%82%D0%B5%D0%BE%D1%80%D0%B5%D0%BC%D0%B0_%D0%BE%D0%B1_%D0%BE%D1%81%D1%82%D0%B0%D1%82%D0%BA%D0%B0%D1%85"/>
				<updated>2015-02-04T09:51:25Z</updated>
		
		<summary type="html">&lt;p&gt;Isaeva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Китайская теорема об остатках формулируется следующим образом:&lt;br /&gt;
&lt;br /&gt;
'''Теорема'''. &lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;p_1, p_2, \ldots, p_k&amp;lt;/math&amp;gt; - попарно взаимно простые числа, большие 1, и пусть &amp;lt;math&amp;gt;P = p_1 \cdot p_2 \cdot \ldots  \cdot p_k&amp;lt;/math&amp;gt;. Тогда существует единственное неотрицательное решение по модулю &amp;lt;math&amp;gt;P&amp;lt;/math&amp;gt; следующей системы сравнений:&lt;br /&gt;
: &amp;lt;math&amp;gt;x \equiv a_1 \pmod{p_1}&amp;lt;/math&amp;gt;,&lt;br /&gt;
: &amp;lt;math&amp;gt;x \equiv a_2 \pmod{p_2}&amp;lt;/math&amp;gt;,     (*)&lt;br /&gt;
: &amp;lt;math&amp;gt;\ldots&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;x \equiv a_k \pmod{p_k}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Другими словами, отображение, которое каждому целому числу &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;0\le x &amp;lt;P&amp;lt;/math&amp;gt;, ставит в соответствие кортеж &amp;lt;math&amp;gt;a_1, a_2, \ldots, a_k&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;x \equiv a_i \pmod{p_i}, i = 1, \ldots k&amp;lt;/math&amp;gt;, является биекцией кольца &amp;lt;math&amp;gt;Z_P&amp;lt;/math&amp;gt; на декартово произведение &amp;lt;math&amp;gt;Z_{p_1} \times Z_{p_2} \times \ldots \times Z_{p_k}&amp;lt;/math&amp;gt;  колец &amp;lt;math&amp;gt;Z_{p_1}, Z_{p_2}, \ldots, Z_{p_k}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Т.е. соответствие между числами и кортежами является взаимно однозначным, кроме того, операции, выполняемые над числом &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt;, можно эквивалентно выполнять над соответствующими элементами кортежами путём независимого выполнения операций над каждым компонентом:&lt;br /&gt;
&lt;br /&gt;
если&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;a \Longleftrightarrow (a_1, \ldots, a_k)&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;b \Longleftrightarrow (b_1, \ldots, b_k)&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
то справедливо:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;(a+b) \pmod{p} \Longleftrightarrow ( (a_1+b_1) \pmod{p_1}, (a_2+b_2) \pmod{p_2}, \ldots, (a_k+b_k) \pmod{p_k})&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;(a-b) \pmod{p} \Longleftrightarrow ( (a_1-b_1) \pmod{p_1}, (a_2-b_2) \pmod{p_2}, \ldots, (a_k-b_k) \pmod{p_k})&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;(a\cdot b) \pmod{p} \Longleftrightarrow ( (a_1\cdot b_1) \pmod{p_1}, (a_2\cdot b_2) \pmod{p_2}, \ldots, (a_k\cdot b_k) \pmod{p_k})&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Существует много различных доказательств китайской теоремы об остатках. Приведём конструктивное доказательство этой теоремы.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Доказательство существования.''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Доказательство 1.''&lt;br /&gt;
&lt;br /&gt;
Систему (*) можно решить так:&lt;br /&gt;
&lt;br /&gt;
(1) Для &amp;lt;math&amp;gt;i=1,\ldots, k&amp;lt;/math&amp;gt; обозначим &amp;lt;math&amp;gt;z_i=P/p_i=p_1\cdot p_2\cdot\ldots\cdot p_{i-1}\cdot p_{i+1}\cdot \ldots\cdot p_k&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
(2) Для &amp;lt;math&amp;gt;i=1,\ldots, k&amp;lt;/math&amp;gt; обозначим &amp;lt;math&amp;gt;y_i=z_{i}^{-1} \pmod{p_i}&amp;lt;/math&amp;gt;. (Заметим, что это всегда можно сделать, поскольку &amp;lt;math&amp;gt;(z_i, p_i)=1&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
(3) Решением системы является число &amp;lt;math&amp;gt;x=a_1\cdot y_1\cdot z_1 + \ldots +a_k\cdot y_k\cdot z_k=1&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Действительно, рассмотрим выражение для &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; и вычислим, например, &amp;lt;math&amp;gt;x \equiv a_1 \pmod{p_1}&amp;lt;/math&amp;gt;. Заметим, что &amp;lt;math&amp;gt;z_i \equiv 0 \pmod{p_1}&amp;lt;/math&amp;gt; при &amp;lt;math&amp;gt;i\ne 1&amp;lt;/math&amp;gt; (это видно из выражения (1) для &amp;lt;math&amp;gt;z_i&amp;lt;/math&amp;gt;). Таким образом, вычисляя &amp;lt;math&amp;gt;x \pmod{p_1}&amp;lt;/math&amp;gt;, получаем &amp;lt;math&amp;gt;x \equiv a_1\cdot y_1\cdot z_1 \pmod{p_1}&amp;lt;/math&amp;gt;. Но из определения &amp;lt;math&amp;gt;y_i&amp;lt;/math&amp;gt; (2) следует, что &amp;lt;math&amp;gt;y_1\cdot z_1 \equiv 1 \pmod{p_1}&amp;lt;/math&amp;gt;, так что получаем &amp;lt;math&amp;gt;x \equiv a_1 \pmod{p_1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
То же самое верно для других значений &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
''Существование решения доказано.''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Доказательство 2.'' &lt;br /&gt;
&lt;br /&gt;
Найдём число &amp;lt;math&amp;gt;x, 0\le x &amp;lt; P&amp;lt;/math&amp;gt;, удовлетворяющее одновременно всем сравнениям, указанным в теореме. Систему сравнений будем решать присоединением на каждом шаге нового сравнения. Первое сравнение справедливо для всякого целого числа &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; вида &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;x=a_1+p_1\cdot q_1&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;q_1&amp;lt;/math&amp;gt; - произвольное целое число. &lt;br /&gt;
&lt;br /&gt;
Для нахождения &amp;lt;math&amp;gt;q_1&amp;lt;/math&amp;gt; подставим значение &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; во второе сравнение системы, &lt;br /&gt;
после чего получим &amp;lt;math&amp;gt;x=a_1+p_1\cdot q_1 \equiv a_2 \pmod{p_2}&amp;lt;/math&amp;gt;, &lt;br /&gt;
откуда &amp;lt;math&amp;gt;q_1\equiv a_1+p_{1}^{-1}\cdot(a_2-a_1) \pmod{p_2}&amp;lt;/math&amp;gt;, &lt;br /&gt;
&lt;br /&gt;
где &amp;lt;math&amp;gt;p_{1}^{-1}&amp;lt;/math&amp;gt; - обратный мультипликативный элемент к &amp;lt;math&amp;gt;p_1&amp;lt;/math&amp;gt; по модулю &amp;lt;math&amp;gt;p_2&amp;lt;/math&amp;gt;. &lt;br /&gt;
Такой элемент существует, так как &amp;lt;math&amp;gt;(p_1, p_2)=1&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Найденное таким образом &amp;lt;math&amp;gt;q_1&amp;lt;/math&amp;gt; можно записать в виде&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;q_1 =p_{1}^{-1}\cdot (a_2-a_1) + p_2\cdot q_2&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
для некоторого целого числа &amp;lt;math&amp;gt;q_2&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Подставим значение &amp;lt;math&amp;gt;q_1&amp;lt;/math&amp;gt; в выражение &lt;br /&gt;
&amp;lt;math&amp;gt;x =a_{1,2}+q_2\cdot p_1\cdot p_2&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Теперь первые два сравнения могут быть заменены на одно &lt;br /&gt;
&amp;lt;math&amp;gt;x =a_{1,2}+q_2\cdot p_1\cdot p_2&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Применим теперь описанную процедуру к полученному сравнению и к одному из оставшихся сравнений исходной системы. Повторяя этот процесс &amp;lt;math&amp;gt;(k-1)&amp;lt;/math&amp;gt; раз, мы в конечном итоге найдём число &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt;, удовлетворяющее всем сравнениям исходной системы.&lt;br /&gt;
&lt;br /&gt;
''Существование решения доказано.''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Доказательство единственности.''&lt;br /&gt;
&lt;br /&gt;
Докажем единственность решения. Воспользуемся методом от противного. Предположим, что существует другое решение &amp;lt;math&amp;gt;x', 0\le x' &amp;lt; P&amp;lt;/math&amp;gt; исходной системы. &lt;br /&gt;
&lt;br /&gt;
Тогда&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\begin{cases}x \equiv a_i \pmod{p_i},\\&lt;br /&gt;
x' \equiv a_i \pmod{p_i}\\&lt;br /&gt;
\end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
для всех &amp;lt;math&amp;gt;i=1,\ldots,k&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Вычитая почленно из первого сравнения второе, получим истинное сравнение &amp;lt;math&amp;gt;(x-x') \equiv 0 \pmod{p_i}&amp;lt;/math&amp;gt;, &lt;br /&gt;
откуда следует, что для всех &amp;lt;math&amp;gt;i=1,\ldots,k&amp;lt;/math&amp;gt; выражение  &amp;lt;math&amp;gt;(x-x')&amp;lt;/math&amp;gt; делится нацело на &amp;lt;math&amp;gt;p_i&amp;lt;/math&amp;gt;. Но тогда &amp;lt;math&amp;gt;(x-x')&amp;lt;/math&amp;gt; делится нацело на &amp;lt;math&amp;gt;P&amp;lt;/math&amp;gt;,следовательно, &amp;lt;math&amp;gt;x=x'&amp;lt;/math&amp;gt;, так как &amp;lt;math&amp;gt;|x-x'|&amp;lt;P&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
''Теорема доказана.''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Пример.'''&lt;br /&gt;
&lt;br /&gt;
Решим систему сравнений&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\begin{cases}x \equiv 1 \pmod{13},\\&lt;br /&gt;
x \equiv 4 \pmod{15},\\&lt;br /&gt;
x \equiv 8 \pmod{19}\\&lt;br /&gt;
\end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Решение''&lt;br /&gt;
&lt;br /&gt;
Так как модули &amp;lt;math&amp;gt;13, 15, 19&amp;lt;/math&amp;gt; попарно взаимно просты, то данная система имеет единственное решение по модулю &amp;lt;math&amp;gt;P = 13\cdot 15\cdot 19 = 3705&amp;lt;/math&amp;gt;. Сравнение &amp;lt;math&amp;gt;x = 1 \pmod{13}&amp;lt;/math&amp;gt; соответствует диофантову уравнению &amp;lt;math&amp;gt;x = 1 + 13\cdot t&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;t \in Z&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Заменяя &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; во втором сравнении системы на &amp;lt;math&amp;gt;1 + 13\cdot t&amp;lt;/math&amp;gt;, получаем &amp;lt;math&amp;gt;1 + 13\cdot t \equiv 4 \pmod{15}&amp;lt;/math&amp;gt;, т.е. &amp;lt;math&amp;gt;13\cdot t \equiv 3 \pmod{15}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
К числу &amp;lt;math&amp;gt;13&amp;lt;/math&amp;gt; обратным мультипликативным элементом по модулю &amp;lt;math&amp;gt;15&amp;lt;/math&amp;gt; является число &amp;lt;math&amp;gt;7&amp;lt;/math&amp;gt;. Умножая последнее сравнение на &amp;lt;math&amp;gt;7&amp;lt;/math&amp;gt; и переходя в нём к вычетам по модулю 15, получим &amp;lt;math&amp;gt;t \equiv 6 \pmod{15}&amp;lt;/math&amp;gt;. Таким образом, &amp;lt;math&amp;gt;t = 6 + 15\cdot u&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;u \in Z&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Следовательно, &amp;lt;math&amp;gt;x = 1 + 13\cdot t = 1+13 \cdot (6 + 15 \cdot u) = 79 + 195 \cdot u&amp;lt;/math&amp;gt;, при этом все числа вида &amp;lt;math&amp;gt;x = 79 + 195 \cdot u, u \in Z&amp;lt;/math&amp;gt; являются решениями первых двух сравнений данной системы. &lt;br /&gt;
&lt;br /&gt;
Подставим в третье сравнение вместо &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; полученное выше значение &amp;lt;math&amp;gt;79 + 195 \cdot u&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;79 + 195 \cdot u \equiv 8 \pmod{19}&amp;lt;/math&amp;gt;, &lt;br /&gt;
или (переносим &amp;lt;math&amp;gt;79&amp;lt;/math&amp;gt;) &lt;br /&gt;
:&amp;lt;math&amp;gt;195 \cdot u \equiv 5 \pmod{19}&amp;lt;/math&amp;gt;, &lt;br /&gt;
далее (делим обе части на &amp;lt;math&amp;gt;5&amp;lt;/math&amp;gt;) &lt;br /&gt;
:&amp;lt;math&amp;gt;39 \cdot u \equiv 1 \pmod{19}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Так как &amp;lt;math&amp;gt;(39, 19) = 1&amp;lt;/math&amp;gt;, то &amp;lt;math&amp;gt;u \equiv 1 \pmod{19}&amp;lt;/math&amp;gt;, или &amp;lt;math&amp;gt;u = 1 + 19 \cdot v, v \in Z&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Итак, &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;79 + 195 \cdot u = 79 + 195 \cdot (1 + 19 \cdot v) = 274 + 3705 \cdot v&amp;lt;/math&amp;gt;, т.е. &amp;lt;math&amp;gt;x = 274&amp;lt;/math&amp;gt;.&lt;/div&gt;</summary>
		<author><name>Isaeva</name></author>	</entry>

	<entry>
		<id>https://vscripts.ru/w/%D0%9A%D0%B8%D1%82%D0%B0%D0%B9%D1%81%D0%BA%D0%B0%D1%8F_%D1%82%D0%B5%D0%BE%D1%80%D0%B5%D0%BC%D0%B0_%D0%BE%D0%B1_%D0%BE%D1%81%D1%82%D0%B0%D1%82%D0%BA%D0%B0%D1%85</id>
		<title>Китайская теорема об остатках</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%9A%D0%B8%D1%82%D0%B0%D0%B9%D1%81%D0%BA%D0%B0%D1%8F_%D1%82%D0%B5%D0%BE%D1%80%D0%B5%D0%BC%D0%B0_%D0%BE%D0%B1_%D0%BE%D1%81%D1%82%D0%B0%D1%82%D0%BA%D0%B0%D1%85"/>
				<updated>2015-02-04T09:15:50Z</updated>
		
		<summary type="html">&lt;p&gt;Isaeva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Китайская теорема об остатках формулируется следующим образом:&lt;br /&gt;
&lt;br /&gt;
'''Теорема'''. &lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;p_1, p_2, \ldots, p_k&amp;lt;/math&amp;gt; - попарно взаимно простые числа, большие 1, и пусть &amp;lt;math&amp;gt;P = p_1 \cdot p_2 \cdot \ldots  \cdot p_k&amp;lt;/math&amp;gt;. Тогда существует единственное неотрицательное решение по модулю &amp;lt;math&amp;gt;P&amp;lt;/math&amp;gt; следующей системы сравнений:&lt;br /&gt;
: &amp;lt;math&amp;gt;x \equiv a_1 \pmod{p_1}&amp;lt;/math&amp;gt;,&lt;br /&gt;
: &amp;lt;math&amp;gt;x \equiv a_2 \pmod{p_2}&amp;lt;/math&amp;gt;,  (*)&lt;br /&gt;
: &amp;lt;math&amp;gt;\ldots&amp;lt;/math&amp;gt;,&lt;br /&gt;
: &amp;lt;math&amp;gt;x \equiv a_k \pmod{p_k}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Другими словами, отображение, которое каждому целому числу &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;0\le x &amp;lt;P&amp;lt;/math&amp;gt;, ставит в соответствие кортеж &amp;lt;math&amp;gt;a_1, a_2, \ldots, a_k&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;x \equiv a_i \pmod{p_i}, i = 1, \ldots k&amp;lt;/math&amp;gt; является биекцией кольца &amp;lt;math&amp;gt;Z_P&amp;lt;/math&amp;gt; на декартово произведение &amp;lt;math&amp;gt;Z_{p_1} \times Z_{p_2} \times \ldots \times Z_{p_k}&amp;lt;/math&amp;gt;  колец &amp;lt;math&amp;gt;Z_{p_1}, Z_{p_2}, \ldots, Z_{p_k}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Т.е. соответствие между числами и кортежами является взаимно однозначным, кроме того, операции, выполняемые над числом &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt;, можно эквивалентно выполнять над соответствующими элементами кортежами путём независимого выполнения операций над каждым компонентом:&lt;br /&gt;
&lt;br /&gt;
если&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;a \Longleftrightarrow (a_1, \ldots, a_k)&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;b \Longleftrightarrow (b_1, \ldots, b_k)&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
то справедливо:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;(a+b) \pmod{p} \Longleftrightarrow ( (a_1+b_1) \pmod{p_1}, (a_2+b_2) \pmod{p_2}, \ldots, (a_k+b_k) \pmod{p_k})&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;(a-b) \pmod{p} \Longleftrightarrow ( (a_1-b_1) \pmod{p_1}, (a_2-b_2) \pmod{p_2}, \ldots, (a_k-b_k) \pmod{p_k})&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;(a\cdot b) \pmod{p} \Longleftrightarrow ( (a_1\cdot b_1) \pmod{p_1}, (a_2\cdot b_2) \pmod{p_2}, \ldots, (a_k\cdot b_k) \pmod{p_k})&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Существует много различных доказательств китайской теоремы об остатках. Приведём конструктивное доказательство этой теоремы.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Доказательство существования.''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Доказательство 1.''&lt;br /&gt;
&lt;br /&gt;
Систему (*) можно решить так:&lt;br /&gt;
&lt;br /&gt;
(1) Для &amp;lt;math&amp;gt;i=1,\ldots, k&amp;lt;/math&amp;gt; обозначим &amp;lt;math&amp;gt;z_i=p/p_i=p_1\cdot p_2\cdot\ldots\cdot p_{i-1}\cdot p_{i+1}\cdot \ldots\cdot p_k&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
(2) Для &amp;lt;math&amp;gt;i=1,\ldots, k&amp;lt;/math&amp;gt; обозначим &amp;lt;math&amp;gt;y_i=z_{i}^{-1} \pmod{p_i}&amp;lt;/math&amp;gt;. (Заметим, что это всегда можно сделать, поскольку &amp;lt;math&amp;gt;(z_i, p_i)=1&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
(3) Решением системы является число &amp;lt;math&amp;gt;x=a_1\cdot y_1\cdot z_1 + \ldots +a_k\cdot y_k\cdot z_k=1&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Действительно, рассмотрим выражение для &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; и вычислим, например, &amp;lt;math&amp;gt;x \equiv a_1 \pmod{p_1}&amp;lt;/math&amp;gt;. Заметим, что &amp;lt;math&amp;gt;z_i \equiv 0 \pmod{p_1}&amp;lt;/math&amp;gt; при &amp;lt;math&amp;gt;i\ne 1&amp;lt;/math&amp;gt; (это видно из выражения (1) для &amp;lt;math&amp;gt;z_i&amp;lt;/math&amp;gt;). Таким образом, вычисляя &amp;lt;math&amp;gt;x \pmod{p_1}&amp;lt;/math&amp;gt;, получаем &amp;lt;math&amp;gt;x \equiv a_1\cdot y_1\cdot z_1 \pmod{p_1}&amp;lt;/math&amp;gt;. Но из определения &amp;lt;/math&amp;gt;y_i&amp;lt;/math&amp;gt; (2) следует, что &amp;lt;math&amp;gt;y_1\cdot z_1 \equiv 1 \pmod{p_1}&amp;lt;/math&amp;gt;, так что получаем &amp;lt;math&amp;gt;x \equiv a_1 \pmod{p_1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
То же самое верно для других значений &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
''Существование решения доказано.''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Доказательство 2.'' &lt;br /&gt;
&lt;br /&gt;
Найдём число &amp;lt;math&amp;gt;x, 0\le x &amp;lt; P&amp;lt;/math&amp;gt;, удовлетворяющее одновременно всем сравнениям, указанным в теореме. Систему сравнений будем решать присоединением на каждом шаге нового сравнения. Первое сравнение справедливо для всякого целого числа &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; вида &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;x=a_1+p_1\cdot q_1&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;q_1&amp;lt;/math&amp;gt; - произвольное целое число. &lt;br /&gt;
&lt;br /&gt;
Для нахождения &amp;lt;math&amp;gt;q_1&amp;lt;/math&amp;gt; подставим значение &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; во второе сравнение системы, &lt;br /&gt;
после чего получим &amp;lt;math&amp;gt;x=a_1+p_1\cdot q_1 \equiv a_2 \pmod{p_2}&amp;lt;/math&amp;gt;, &lt;br /&gt;
откуда &amp;lt;math&amp;gt;q_1\equiv a_1+p_{1}^{-1}\cdot(a_2-a_1) \pmod{p_2}&amp;lt;/math&amp;gt;, &lt;br /&gt;
&lt;br /&gt;
где &amp;lt;math&amp;gt;p_{1}^{-1}&amp;lt;/math&amp;gt; - обратный мультипликативный элемент к &amp;lt;math&amp;gt;p_1&amp;lt;/math&amp;gt; по модулю &amp;lt;math&amp;gt;p_2&amp;lt;/math&amp;gt;. &lt;br /&gt;
Такой элемент существует, так как &amp;lt;math&amp;gt;(p_1, p_2)=1&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Найденное таким образом &amp;lt;math&amp;gt;q_1&amp;lt;/math&amp;gt; можно записать в виде&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;q_1 =p_{1}^{-1}\cdot (a_2-a_1) + p_2\cdot q_2&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
для некоторого целого числа &amp;lt;math&amp;gt;q_2&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Подставим значение &amp;lt;math&amp;gt;q_1&amp;lt;/math&amp;gt; в выражение &lt;br /&gt;
&amp;lt;math&amp;gt;x =a_{1,2}+q_2\cdot p_1\cdot p_2&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Теперь первые два сравнения могут быть заменены на одно &lt;br /&gt;
&amp;lt;math&amp;gt;x =a_{1,2}+q_2\cdot p_1\cdot p_2&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Применим теперь описанную процедуру к полученному сравнению и к одному из оставшихся сравнений исходной системы. Повторяя этот процесс &amp;lt;math&amp;gt;(k-1)&amp;lt;/math&amp;gt; раз, мы в конечном итоге найдём число &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt;, удовлетворяющее всем сравнениям исходной системы.&lt;br /&gt;
&lt;br /&gt;
''Существование решения доказано.''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Доказательство единственности.''&lt;br /&gt;
&lt;br /&gt;
Докажем единственность решения. Воспользуемся методом от противного. Предположим, что существует другое решение &amp;lt;math&amp;gt;x', 0\le x' &amp;lt; P&amp;lt;/math&amp;gt; исходной системы. &lt;br /&gt;
&lt;br /&gt;
Тогда&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\begin{cases}x \equiv a_i \pmod{p_i},\\&lt;br /&gt;
x' \equiv a_i \pmod{p_i}\\&lt;br /&gt;
\end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
для всех &amp;lt;math&amp;gt;i=1,\ldots,k&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Вычитая почленно из первого сравнения второе, получим истинное сравнение &amp;lt;math&amp;gt;(x-x') \equiv 0 \pmod{p_i}&amp;lt;/math&amp;gt;, &lt;br /&gt;
откуда следует, что для всех &amp;lt;math&amp;gt;i=1,\ldots,k&amp;lt;/math&amp;gt; &amp;lt;math&amp;gt;(x-x')&amp;lt;/math&amp;gt; делится нацело на &amp;lt;math&amp;gt;p_i&amp;lt;/math&amp;gt;. Но тогда &amp;lt;math&amp;gt;(x-x')&amp;lt;/math&amp;gt; делится нацело на &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;,следовательно, &amp;lt;math&amp;gt;x=x&amp;lt;/math&amp;gt;, так как &amp;lt;math&amp;gt;|x-x'|&amp;lt;p&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
''Теорема доказана.''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Пример.'''&lt;br /&gt;
&lt;br /&gt;
Решим систему сравнений&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\begin{cases}x \equiv 1 \pmod{13},\\&lt;br /&gt;
x \equiv 4 \pmod{15},\\&lt;br /&gt;
x \equiv 8 \pmod{19}\\&lt;br /&gt;
\end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Решение''&lt;br /&gt;
&lt;br /&gt;
Так как модули &amp;lt;math&amp;gt;13, 15, 19&amp;lt;/math&amp;gt; - попарно взаимно простые числа, то данная система имеет единственное решение по модулю &amp;lt;math&amp;gt;P = 13\cdot 15\cdot 19 = 3705&amp;lt;/math&amp;gt;. Сравнение &amp;lt;math&amp;gt;x = 1 \pmod{13}&amp;lt;/math&amp;gt; соответствует диофантову уравнению &amp;lt;math&amp;gt;x = 1 + 13\cdot t&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;t \in Z&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Заменяя &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; во втором сравнении системы на &amp;lt;math&amp;gt;1 + 13\cdot t&amp;lt;/math&amp;gt;, получаем &amp;lt;math&amp;gt;1 + 13\cdot t \equiv 4 \pmod{15}&amp;lt;/math&amp;gt;, т.е. &amp;lt;math&amp;gt;13\cdot t \equiv 3 \pmod{15}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
К числу &amp;lt;math&amp;gt;13&amp;lt;/math&amp;gt; обратным мультипликативным элементом по модулю &amp;lt;math&amp;gt;15&amp;lt;/math&amp;gt; является число &amp;lt;math&amp;gt;7&amp;lt;/math&amp;gt;. Умножая последнее сравнение на &amp;lt;math&amp;gt;7&amp;lt;/math&amp;gt; и переходя в нём к вычетам по модулю 15, получим &amp;lt;math&amp;gt;t \equiv 6 \pmod{15}&amp;lt;/math&amp;gt;. Таким образом, &amp;lt;math&amp;gt;t = 6 + 15\cdot u&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;u \in Z&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Следовательно, &amp;lt;math&amp;gt;x = 1 + 13\cdot t = 1+13 \cdot (6 + 15 \cdot u) = 79 + 195 \cdot u&amp;lt;/math&amp;gt;, при этом все числа вида &amp;lt;math&amp;gt;x = 79 + 195 \cdot u, u \in Z&amp;lt;/math&amp;gt; являются решениями первых двух сравнений данной системы. Подставим в третье сравнение вместо &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; полученное выше значение &amp;lt;math&amp;gt;79 + 195 \cdot u&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;79 + 195 \cdot u \equiv 8 \pmod{19}&amp;lt;/math&amp;gt; или &amp;lt;math&amp;gt;5 \cdot u \equiv 5 \pmod{19}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Так как &amp;lt;math&amp;gt;(5, 19) = 1&amp;lt;/math&amp;gt;, то &amp;lt;math&amp;gt;u \equiv 1 \pmod{19}&amp;lt;/math&amp;gt;, или &amp;lt;math&amp;gt;u = 1 + 19 \cdot v, v \in Z&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Итак, &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;79 + 195 \cdot u = 79 + 195 \cdot (1 + 19 \cdot v) = 274 + 3705 \cdot v&amp;lt;/math&amp;gt;, т.е. &amp;lt;math&amp;gt;x = 274&amp;lt;/math&amp;gt;.&lt;/div&gt;</summary>
		<author><name>Isaeva</name></author>	</entry>

	<entry>
		<id>https://vscripts.ru/w/%D0%A2%D0%B5%D0%BE%D1%80%D0%B5%D0%BC%D0%B0_%D0%BE_%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D0%B8_%D1%81_%D0%BE%D1%81%D1%82%D0%B0%D1%82%D0%BA%D0%BE%D0%BC._%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%95%D0%B2%D0%BA%D0%BB%D0%B8%D0%B4%D0%B0</id>
		<title>Теорема о делении с остатком. Алгоритм Евклида</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%A2%D0%B5%D0%BE%D1%80%D0%B5%D0%BC%D0%B0_%D0%BE_%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D0%B8_%D1%81_%D0%BE%D1%81%D1%82%D0%B0%D1%82%D0%BA%D0%BE%D0%BC._%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%95%D0%B2%D0%BA%D0%BB%D0%B8%D0%B4%D0%B0"/>
				<updated>2015-01-28T11:47:37Z</updated>
		
		<summary type="html">&lt;p&gt;Isaeva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Напомним теорему о делении с остатком:&lt;br /&gt;
&lt;br /&gt;
'''Теорема о делении с остатком'''&lt;br /&gt;
&lt;br /&gt;
Для любых целых &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;b \not= 0&amp;lt;/math&amp;gt;, существует единственный набор целых чисел &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;, что &amp;lt;math&amp;gt;a = bq + r&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;0 \le r &amp;lt; |b|&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;|b|&amp;lt;/math&amp;gt; — модуль числа &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Легко доказывается, что для любых целых чисел &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;b \not= 0&amp;lt;/math&amp;gt; деление с остатком возможно и числа &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt; определяются однозначно. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Рассмотрим следующий пример:&lt;br /&gt;
&lt;br /&gt;
'''Пример'''&lt;br /&gt;
&lt;br /&gt;
Пусть модуль &amp;lt;math&amp;gt;p = 6&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Тогда имеем шесть классов разбиения множества целых чисел по модулю 6:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;K_0 = \left\{\ldots,-18,-12,-6,0,6,12,18,\ldots \right\}, r=0&amp;lt;/math&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;K_1 = \left\{\ldots,-17,-11,-5,1,7,13,19,\ldots \right\}, r=1&amp;lt;/math&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;K_2 = \left\{\ldots,-16,-10,-4,2,8,14,20,\ldots \right\}, r=2&amp;lt;/math&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;K_3 = \left\{\ldots,-15,-9,-3,3,9,15,21,\ldots \right\}, r=3&amp;lt;/math&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;K_4 = \left\{\ldots,-14,-8,-2,4,10,16,22,\ldots \right\}, r=4&amp;lt;/math&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;K_5 = \left\{\ldots,-13,-7,-1,5,11,17,23,\ldots \right\}, r=5&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
где через &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt; обозначен остаток от деления целого числа на 6.&lt;br /&gt;
&lt;br /&gt;
В данном примере полная система наименьших неотрицательных вычетов есть множество &amp;lt;math&amp;gt;\left\{0, 1, 2, 3, 4, 5 \right\}&amp;lt;/math&amp;gt;; полная система наименьших положительных вычетов – множество &amp;lt;math&amp;gt;\left\{0, 1, 2, 3, 4, 5, 6 \right\}&amp;lt;/math&amp;gt;; полная система наименьших по абсолютной величине вычетов – множество &amp;lt;math&amp;gt;\left\{-2,-1, 0, 1, 2, 3 \right\}&amp;lt;/math&amp;gt;; приведённая система вычетов – множество &amp;lt;math&amp;gt;\left\{1,5 \right\}&amp;lt;/math&amp;gt;, так как &amp;lt;math&amp;gt;\varphi(6) = 6\,\left(1-\frac{1}{2}\right)\left(1-\frac{1}{3}\right) = 2&amp;lt;/math&amp;gt; ; фактор-множество &amp;lt;math&amp;gt;Z{|{\equiv}_6} = \left\{K_0, K_1, K_2, K_3, K_4, K_5 \right\}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Один из методов выполнения арифметических операций над целыми числами основан на простых положениях теории чисел. Идея этого метода состоит в том, что целые числа представляются в одной из непозиционных систем – в системе остаточных классов. А именно: вместо операций над целыми числами оперируют с остатками от деления этих чисел на заранее выбранные числа – модули &amp;lt;math&amp;gt;p_1, p_2, \ldots, p_n&amp;lt;/math&amp;gt;. &lt;br /&gt;
Чаще всего модули &amp;lt;math&amp;gt;p_1, p_2, \ldots, p_n&amp;lt;/math&amp;gt; выбирают из множества простых чисел.&lt;br /&gt;
&lt;br /&gt;
Пусть&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;A \equiv {\alpha}_1 \pmod{p_1}&amp;lt;/math&amp;gt;,&lt;br /&gt;
: &amp;lt;math&amp;gt;A \equiv {\alpha}_2 \pmod{p_2}&amp;lt;/math&amp;gt;,&lt;br /&gt;
: &amp;lt;math&amp;gt;\ldots&amp;lt;/math&amp;gt;,&lt;br /&gt;
: &amp;lt;math&amp;gt;A \equiv {\alpha}_n \pmod{p_n}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Так как в кольце целых чисел имеет место теорема о делении с остатком, т. е. &amp;lt;math&amp;gt;\forall a \in Z, \forall b \in Z, b\not= 0 \, \exist q \in Z, \exist r \in Z (0 \le r &amp;lt;b):\, a=bq+r &amp;lt;/math&amp;gt;, то кольцо Z, по определению, является евклидовым. Таким образом, в качестве чисел &amp;lt;math&amp;gt; {\alpha}_i, i=0,\ldots,n &amp;lt;/math&amp;gt; можно выбрать остатки от деления числа &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt; на &amp;lt;math&amp;gt;p_i&amp;lt;/math&amp;gt; соответственно.&lt;br /&gt;
&lt;br /&gt;
Рассмотрим гомоморфное отображение: &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;Z \to Z{|{\equiv}_{p_1}} \times Z{|{\equiv}_{p_2}} \times \ldots \times Z{|{\equiv}_{p_n}} &amp;lt;/math&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
Тогда каждому целому числу А можно поставить в соответствие кортеж &amp;lt;math&amp;gt;\left\{{\alpha}_1, {\alpha}_2, \ldots, {\alpha}_n \right\}&amp;lt;/math&amp;gt; наименьших неотрицательных вычетов по одному из соответствующих классов. &lt;br /&gt;
&lt;br /&gt;
Важно отметить, что при преобразовании числа нет потери информации, если выполнено условие &amp;lt;math&amp;gt;A &amp;lt; p_1 \cdot p_2 \cdot \ldots \cdot p_n&amp;lt;/math&amp;gt;, поскольку всегда, зная &amp;lt;math&amp;gt;\left({\alpha}_1, {\alpha}_2, \ldots, {\alpha}_n \right)&amp;lt;/math&amp;gt; можно восстановить само число &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt;. Поэтому кортеж  можно рассматривать как один из способов представления целого числа &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt; – модулярное представление, или представление в системе остаточных классов (СОК).&lt;br /&gt;
&lt;br /&gt;
Для дальнейшего используем расширенный алгоритм Евклида или его аналог – алгоритм нахождения линейного представления наибольшего общего делителя целых чисел: если числа а и b одновременно не равны нулю, то существуют целые числа &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt;, такие, что &amp;lt;math&amp;gt;a \cdot b = a \cdot x + b \cdot y&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Действительно, пусть &amp;lt;math&amp;gt;d&amp;lt;/math&amp;gt; – наименьшее целое положительное число вида &amp;lt;math&amp;gt;a \cdot x + b \cdot y&amp;lt;/math&amp;gt;, например, &amp;lt;math&amp;gt;d = a \cdot x_0 + b \cdot y_0&amp;lt;/math&amp;gt;, где числа &amp;lt;math&amp;gt;x_0&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;y_0&amp;lt;/math&amp;gt; не обязательно определены однозначно. Существование числа &amp;lt;math&amp;gt;d&amp;lt;/math&amp;gt; следует только из принципа полной упорядоченности. Очевидно, что &amp;lt;math&amp;gt;d &amp;gt; 0&amp;lt;/math&amp;gt;. Остаётся показать, что &amp;lt;math&amp;gt;d = (a,b)&amp;lt;/math&amp;gt;. Для этого надо проверить выполнение двух условий: а) &amp;lt;math&amp;gt;d|a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;d|b&amp;lt;/math&amp;gt; б) если &amp;lt;math&amp;gt;c|a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;c|b&amp;lt;/math&amp;gt;&lt;br /&gt;
то &amp;lt;math&amp;gt;c|d&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
От противного: допустим, что свойство а) не выполняется, для определенности положим, что не выполнено &amp;lt;math&amp;gt;d|b&amp;lt;/math&amp;gt;. Тогда по теореме о делении с остатком &amp;lt;math&amp;gt;a = dq + r&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;0 \le r &amp;lt; |d|&amp;lt;/math&amp;gt;, и, следовательно, &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;r=b-dq = b-(ax_0+by_0)q = a(-qx_0)+b(1-qy_0)&amp;lt;/math&amp;gt;, &lt;br /&gt;
&lt;br /&gt;
что противоречит минимальности &amp;lt;math&amp;gt;d&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Выполнение свойства б) проверяется непосредственно: &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;c|a \Rightarrow \left(\exist q_1 \in Z\right)\left(a = q_1\, c\right)&amp;lt;/math&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;c|b \Rightarrow \left(\exist q_2 \in Z\right)\left(a = q_2\, c\right)&amp;lt;/math&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;d=ax_0 + by_0 \Rightarrow d = q_1 c x_0 + q_2 c y_0 \Rightarrow d = \left(q_1 x_0 + q_2 y_0\right) c|d &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Алгоритм Евклида для целых чисел'''&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; — целые числа, не равные одновременно нулю, и последовательность чисел&lt;br /&gt;
: &amp;lt;math&amp;gt; a &amp;gt; b &amp;gt; r_1 &amp;gt; r_2 &amp;gt; r_3 &amp;gt; r_4 &amp;gt; \cdots &amp;gt;r_n&amp;lt;/math&amp;gt;&lt;br /&gt;
определена тем, что каждое &amp;lt;math&amp;gt;r_k&amp;lt;/math&amp;gt; — это остаток от деления предпредыдущего числа на предыдущее, а предпоследнее делится на последнее нацело, то есть&lt;br /&gt;
: &amp;lt;math&amp;gt;a = bq_0 + r_1&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;b = r_1q_1 + r_2&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;r_1 = r_2q_2 + r_3&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;\cdots&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;r_{k-2} = r_{k-1} q_{k-1} + r_k&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;\cdots&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;r_{n-2} = r_{n-1}q_{n-1}+ r_n&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;r_{n-1} = r_n q_n&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Тогда '''НОД''' &amp;lt;math&amp;gt;(a,b)&amp;lt;/math&amp;gt;, наибольший общий делитель &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt;, равен&lt;br /&gt;
&amp;lt;math&amp;gt;r_n&amp;lt;/math&amp;gt;, последнему ненулевому члену этой последовательности.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Существование''' таких &amp;lt;math&amp;gt;r_1, r_2, ...&amp;lt;/math&amp;gt;, то есть возможность деления с остатком &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; на &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; для любого целого &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и целого &amp;lt;math&amp;gt;b\ne 0&amp;lt;/math&amp;gt;, доказывается индукцией.&lt;br /&gt;
&lt;br /&gt;
'''Корректность''' этого алгоритма вытекает из следующих двух утверждений:&lt;br /&gt;
&lt;br /&gt;
* Пусть &amp;lt;math&amp;gt;a = bq + r&amp;lt;/math&amp;gt;, тогда '''НОД''' &amp;lt;math&amp;gt;(a,b)&amp;lt;/math&amp;gt; = '''НОД''' &amp;lt;math&amp;gt;(b,r)&amp;lt;/math&amp;gt;.&lt;br /&gt;
* '''НОД''' &amp;lt;math&amp;gt;(0,r)&amp;lt;/math&amp;gt; = &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt; для любого ненулевого &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt; (так как 0 делится на любое целое число, кроме нуля).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Расширенный алгоритм Евклида для целых чисел'''&lt;br /&gt;
&lt;br /&gt;
Рассмотрим расширенный алгоритм Евклида для нахождения линейного представления наибольшего общего делителя &amp;lt;math&amp;gt;(a,b) = ax + by &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Значения &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt; вычисляются в серии шагов, в каждом из которых мы выражаем &amp;lt;math&amp;gt;a_i&amp;lt;/math&amp;gt; (вычисленное в процессе работы алгоритма Евклида) в форме &amp;lt;math&amp;gt;a x_i + b y_i &amp;lt;/math&amp;gt;. А именно, рассмотрим последовательность&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;a_0 = a&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;a_0 = a x_0 + b y_0&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;a_1 = b&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;a_1 = a x_1 + b y_1&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;a_2 = a_0 - a_1 q_1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;a_2 = a x_2 + b y_2&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;a_3 = a_1 - a_2 q_2&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;a_3 = a x_3 + b y_3&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;\cdots&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;a_i = a_{i-2} - a_{i-1} q_{i-1}&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;a_i = a x_i + b y_i&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;\cdots&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;a_k = a_{k-2} - a_{k-1} q_{k-1}&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;a_k = a x_k + b y_k&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;0 = a_{k-1} - a_k q_k&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;0 = a x_{k+1} + b y_{k+1}&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В левом столбце алгоритма записана последовательность делений, которая получается в результате работы алгоритма Евклида и которая разрешена относительно остатков. Согласно теореме Ламе (1844 г.) число делений, которое необходимо выполнить для нахождения &amp;lt;math&amp;gt;(a,b)&amp;lt;/math&amp;gt;, не превосходит числа цифр в меньшем из чисел &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt;, умноженного на 5 (оценка наихудшего случая для алгоритма Евклида). Теорема Ламе доказывается на основе последовательности Фибоначчи.&lt;br /&gt;
&lt;br /&gt;
В правом столбце алгоритма каждый остаток выражен через &amp;lt;math&amp;gt;a x_i + b y_i&amp;lt;/math&amp;gt;. Надо вычислить &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;y_i&amp;lt;/math&amp;gt;. Очевидно, что &amp;lt;math&amp;gt;x_0 = 1, y_0 = 0&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;x_1 = 0, y_1 = 1&amp;lt;/math&amp;gt;. Сравнивая обе части на ''i''-м шаге, получим &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;a_i = a x_i + b y_i = a_{i-2} - a_{i-1} q_{i-1} = \left(a x_{i-2} + b y_{i-2} \right) - \left(a x_{i-1} + b y_{i-1} \right) q_{i-1} =&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \left(a x_{i-2} - x_{i-1} q_{i-1} \right) + \left(b y_{i-2} - y_{i-1} q_{i-1} \right)&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
откуда получается следующая индуктивная процедура вычисления &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;y_i&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;q_{i-1} = \left \lfloor \frac{a_{i-2}}{a_{i-1}} \right \rfloor&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;a_i = a_{i-2} - a_{i-1} q_{i-1}&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;x_i = x_{i-2} - x_{i-1} q_{i-1}&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;y_i = y_{i-2} - y_{i-1} q_{i-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Пример (Расширенный алгоритм Евклида)'''. &lt;br /&gt;
&lt;br /&gt;
Применим расширенный алгоритм Евклида к числам &amp;lt;math&amp;gt;a = 342, b = 612&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Весь алгоритм представим в виде следующей таблицы.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \begin{array}{|c|r|r|r|r|r|r|r|} \hline Iteration &amp;amp; q &amp;amp; A_0 &amp;amp; a_1 &amp;amp; x_0 &amp;amp; x_1 &amp;amp; Y_0 &amp;amp; y_1 &lt;br /&gt;
\\ \hline 0 &amp;amp; - &amp;amp; 342 &amp;amp; 612 &amp;amp;  1 &amp;amp;   0 &amp;amp;  0 &amp;amp;  1&lt;br /&gt;
\\ \hline 1 &amp;amp; 0 &amp;amp; 612 &amp;amp; 342 &amp;amp;  0 &amp;amp;   1 &amp;amp;  1 &amp;amp;  0&lt;br /&gt;
\\ \hline 2 &amp;amp; 1 &amp;amp; 342 &amp;amp; 270 &amp;amp;  1 &amp;amp;  -1 &amp;amp;  0 &amp;amp;  1&lt;br /&gt;
\\ \hline 3 &amp;amp; 1 &amp;amp; 270 &amp;amp;  72 &amp;amp; -1 &amp;amp;   2 &amp;amp;  1 &amp;amp; -1&lt;br /&gt;
\\ \hline 4 &amp;amp; 3 &amp;amp;  72 &amp;amp;  54 &amp;amp;  2 &amp;amp;  -7 &amp;amp; -1 &amp;amp;  4&lt;br /&gt;
\\ \hline 5 &amp;amp; 1 &amp;amp;  54 &amp;amp;  18 &amp;amp; -7 &amp;amp;   9 &amp;amp;  4 &amp;amp; -5&lt;br /&gt;
\\ \hline 6 &amp;amp; 3 &amp;amp;  18 &amp;amp;   0 &amp;amp;  9 &amp;amp; -34 &amp;amp; -5 &amp;amp; 19&lt;br /&gt;
&lt;br /&gt;
\\ \hline \end{array} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Заметим, что равенство &amp;lt;math&amp;gt;a_0 = a x_0 + b y_0&amp;lt;/math&amp;gt; выполняется на каждом шаге итерации. Алгоритм выдаёт &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;d = 18, x = 9, y = -5&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
и тогда &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;18=342 \cdot 9 + 612 \cdot (-5)&amp;lt;/math&amp;gt;.&lt;/div&gt;</summary>
		<author><name>Isaeva</name></author>	</entry>

	<entry>
		<id>https://vscripts.ru/w/%D0%A2%D0%B5%D0%BE%D1%80%D0%B5%D0%BC%D0%B0_%D0%BE_%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D0%B8_%D1%81_%D0%BE%D1%81%D1%82%D0%B0%D1%82%D0%BA%D0%BE%D0%BC._%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%95%D0%B2%D0%BA%D0%BB%D0%B8%D0%B4%D0%B0</id>
		<title>Теорема о делении с остатком. Алгоритм Евклида</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%A2%D0%B5%D0%BE%D1%80%D0%B5%D0%BC%D0%B0_%D0%BE_%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D0%B8_%D1%81_%D0%BE%D1%81%D1%82%D0%B0%D1%82%D0%BA%D0%BE%D0%BC._%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%95%D0%B2%D0%BA%D0%BB%D0%B8%D0%B4%D0%B0"/>
				<updated>2015-01-28T11:45:35Z</updated>
		
		<summary type="html">&lt;p&gt;Isaeva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Напомним теорему о делении с остатком:&lt;br /&gt;
&lt;br /&gt;
'''Теорема о делении с остатком'''&lt;br /&gt;
&lt;br /&gt;
Для любых целых &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;b \not= 0&amp;lt;/math&amp;gt;, существует единственный набор целых чисел &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;, что &amp;lt;math&amp;gt;a = bq + r&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;0 \le r &amp;lt; |b|&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;|b|&amp;lt;/math&amp;gt; — модуль числа &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Легко доказывается, что для любых целых чисел &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;b \not= 0&amp;lt;/math&amp;gt; деление с остатком возможно и числа &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt; определяются однозначно. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Рассмотрим следующий пример:&lt;br /&gt;
&lt;br /&gt;
'''Пример'''&lt;br /&gt;
&lt;br /&gt;
Пусть модуль &amp;lt;math&amp;gt;p = 6&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Тогда имеем шесть классов разбиения множества целых чисел по модулю 6:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;K_0 = \left\{\ldots,-18,-12,-6,0,6,12,18,\ldots \right\}, r=0&amp;lt;/math&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;K_1 = \left\{\ldots,-17,-11,-5,1,7,13,19,\ldots \right\}, r=1&amp;lt;/math&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;K_2 = \left\{\ldots,-16,-10,-4,2,8,14,20,\ldots \right\}, r=2&amp;lt;/math&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;K_3 = \left\{\ldots,-15,-9,-3,3,9,15,21,\ldots \right\}, r=3&amp;lt;/math&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;K_4 = \left\{\ldots,-14,-8,-2,4,10,16,22,\ldots \right\}, r=4&amp;lt;/math&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;K_5 = \left\{\ldots,-13,-7,-1,5,11,17,23,\ldots \right\}, r=5&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
где через &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt; обозначен остаток от деления целого числа на 6.&lt;br /&gt;
&lt;br /&gt;
В данном примере полная система наименьших неотрицательных вычетов есть множество &amp;lt;math&amp;gt;\left\{0, 1, 2, 3, 4, 5 \right\}&amp;lt;/math&amp;gt;; полная система наименьших положительных вычетов – множество &amp;lt;math&amp;gt;\left\{0, 1, 2, 3, 4, 5, 6 \right\}&amp;lt;/math&amp;gt;; полная система наименьших по абсолютной величине вычетов – множество &amp;lt;math&amp;gt;\left\{-2,-1, 0, 1, 2, 3 \right\}&amp;lt;/math&amp;gt;; приведённая система вычетов – множество &amp;lt;math&amp;gt;\left\{1,5 \right\}&amp;lt;/math&amp;gt;, так как &amp;lt;math&amp;gt;\varphi(6) = 6\,\left(1-\frac{1}{2}\right)\left(1-\frac{1}{3}\right) = 2&amp;lt;/math&amp;gt; ; фактор-множество &amp;lt;math&amp;gt;Z{|{\equiv}_6} = \left\{K_0, K_1, K_2, K_3, K_4, K_5 \right\}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Один из методов выполнения арифметических операций над целыми числами основан на простых положениях теории чисел. Идея этого метода состоит в том, что целые числа представляются в одной из непозиционных систем – в системе остаточных классов. А именно: вместо операций над целыми числами оперируют с остатками от деления этих чисел на заранее выбранные числа – модули &amp;lt;math&amp;gt;p_1, p_2, \ldots, p_n&amp;lt;/math&amp;gt;. &lt;br /&gt;
Чаще всего модули &amp;lt;math&amp;gt;p_1, p_2, \ldots, p_n&amp;lt;/math&amp;gt; выбирают из множества простых чисел.&lt;br /&gt;
&lt;br /&gt;
Пусть&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;A \equiv {\alpha}_1 \pmod{p_1}&amp;lt;/math&amp;gt;,&lt;br /&gt;
: &amp;lt;math&amp;gt;A \equiv {\alpha}_2 \pmod{p_2}&amp;lt;/math&amp;gt;,&lt;br /&gt;
: &amp;lt;math&amp;gt;\ldots&amp;lt;/math&amp;gt;,&lt;br /&gt;
: &amp;lt;math&amp;gt;A \equiv {\alpha}_n \pmod{p_n}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Так как в кольце целых чисел имеет место теорема о делении с остатком, т. е. &amp;lt;math&amp;gt;\forall a \in Z, \forall b \in Z, b\not= 0 \, \exist q \in Z, \exist r \in Z (0 \le r &amp;lt;b):\, a=bq+r &amp;lt;/math&amp;gt;, то кольцо Z, по определению, является евклидовым. Таким образом, в качестве чисел &amp;lt;math&amp;gt; {\alpha}_i, i=0,\ldots,n &amp;lt;/math&amp;gt; можно выбрать остатки от деления числа &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt; на &amp;lt;math&amp;gt;p_i&amp;lt;/math&amp;gt; соответственно.&lt;br /&gt;
&lt;br /&gt;
Рассмотрим гомоморфное отображение: &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;Z \to Z{|{\equiv}_{p_1}} \times Z{|{\equiv}_{p_2}} \times \ldots \times Z{|{\equiv}_{p_n}} &amp;lt;/math&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
Тогда каждому целому числу А можно поставить в соответствие кортеж &amp;lt;math&amp;gt;\left\{{\alpha}_1, {\alpha}_2, \ldots, {\alpha}_n \right\}&amp;lt;/math&amp;gt; наименьших неотрицательных вычетов по одному из соответствующих классов. &lt;br /&gt;
&lt;br /&gt;
Важно отметить, что при преобразовании числа нет потери информации, если выполнено условие &amp;lt;math&amp;gt;A &amp;lt; p_1 \cdot p_2 \cdot \ldots \cdot p_n&amp;lt;/math&amp;gt;, поскольку всегда, зная &amp;lt;math&amp;gt;\left({\alpha}_1, {\alpha}_2, \ldots, {\alpha}_n \right)&amp;lt;/math&amp;gt; можно восстановить само число &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt;. Поэтому кортеж  можно рассматривать как один из способов представления целого числа &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt; – модулярное представление, или представление в системе остаточных классов (СОК).&lt;br /&gt;
&lt;br /&gt;
Для дальнейшего используем расширенный алгоритм Евклида или его аналог – алгоритм нахождения линейного представления наибольшего общего делителя целых чисел: если числа а и b одновременно не равны нулю, то существуют целые числа &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt;, такие, что &amp;lt;math&amp;gt;a \cdot b = a \cdot x + b \cdot y&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Действительно, пусть &amp;lt;math&amp;gt;d&amp;lt;/math&amp;gt; – наименьшее целое положительное число вида &amp;lt;math&amp;gt;a \cdot x + b \cdot y&amp;lt;/math&amp;gt;, например, &amp;lt;math&amp;gt;d = a \cdot x_0 + b \cdot y_0&amp;lt;/math&amp;gt;, где числа &amp;lt;math&amp;gt;x_0&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;y_0&amp;lt;/math&amp;gt; не обязательно определены однозначно. Существование числа &amp;lt;math&amp;gt;d&amp;lt;/math&amp;gt; следует только из принципа полной упорядоченности. Очевидно, что &amp;lt;math&amp;gt;d &amp;gt; 0&amp;lt;/math&amp;gt;. Остаётся показать, что &amp;lt;math&amp;gt;d = (a,b)&amp;lt;/math&amp;gt;. Для этого надо проверить выполнение двух условий: а) &amp;lt;math&amp;gt;d|a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;d|b&amp;lt;/math&amp;gt; б) если &amp;lt;math&amp;gt;c|a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;c|b&amp;lt;/math&amp;gt;&lt;br /&gt;
то &amp;lt;math&amp;gt;c|d&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
От противного: допустим, что свойство а) не выполняется, для определенности положим, что не выполнено &amp;lt;math&amp;gt;d|b&amp;lt;/math&amp;gt;. Тогда по теореме о делении с остатком &amp;lt;math&amp;gt;a = dq + r&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;0 \le r &amp;lt; |d|&amp;lt;/math&amp;gt;, и, следовательно, &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;r=b-dq = b-(ax_0+by_0)q = a(-qx_0)+b(1-qy_0)&amp;lt;/math&amp;gt;, &lt;br /&gt;
&lt;br /&gt;
что противоречит минимальности &amp;lt;math&amp;gt;d&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Выполнение свойства б) проверяется непосредственно: &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;c|a \Rightarrow \left(\exist q_1 \in Z\right)\left(a = q_1\, c\right)&amp;lt;/math&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;c|b \Rightarrow \left(\exist q_2 \in Z\right)\left(a = q_2\, c\right)&amp;lt;/math&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;d=ax_0 + by_0 \Rightarrow d = q_1 c x_0 + q_2 c y_0 \Rightarrow d = \left(q_1 x_0 + q_2 y_0\right) c|d &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Алгоритм Евклида для целых чисел'''&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; — целые числа, не равные одновременно нулю, и последовательность чисел&lt;br /&gt;
: &amp;lt;math&amp;gt; a &amp;gt; b &amp;gt; r_1 &amp;gt; r_2 &amp;gt; r_3 &amp;gt; r_4 &amp;gt; \cdots &amp;gt;r_n&amp;lt;/math&amp;gt;&lt;br /&gt;
определена тем, что каждое &amp;lt;math&amp;gt;r_k&amp;lt;/math&amp;gt; — это остаток от деления предпредыдущего числа на предыдущее, а предпоследнее делится на последнее нацело, то есть&lt;br /&gt;
: &amp;lt;math&amp;gt;a = bq_0 + r_1&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;b = r_1q_1 + r_2&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;r_1 = r_2q_2 + r_3&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;\cdots&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;r_{k-2} = r_{k-1} q_{k-1} + r_k&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;\cdots&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;r_{n-2} = r_{n-1}q_{n-1}+ r_n&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;r_{n-1} = r_n q_n&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Тогда '''НОД''' &amp;lt;math&amp;gt;(a,b)&amp;lt;/math&amp;gt;, наибольший общий делитель &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt;, равен&lt;br /&gt;
&amp;lt;math&amp;gt;r_n&amp;lt;/math&amp;gt;, последнему ненулевому члену этой последовательности.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Существование''' таких &amp;lt;math&amp;gt;r_1, r_2, ...&amp;lt;/math&amp;gt;, то есть возможность деления с остатком &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; на &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; для любого целого &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и целого &amp;lt;math&amp;gt;b\ne 0&amp;lt;/math&amp;gt;, доказывается индукцией.&lt;br /&gt;
&lt;br /&gt;
'''Корректность''' этого алгоритма вытекает из следующих двух утверждений:&lt;br /&gt;
&lt;br /&gt;
* Пусть &amp;lt;math&amp;gt;a = bq + r&amp;lt;/math&amp;gt;, тогда '''НОД''' &amp;lt;math&amp;gt;(a,b)&amp;lt;/math&amp;gt; = '''НОД''' &amp;lt;math&amp;gt;(b,r)&amp;lt;/math&amp;gt;.&lt;br /&gt;
* '''НОД''' &amp;lt;math&amp;gt;(0,r)&amp;lt;/math&amp;gt; = &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt; для любого ненулевого &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt; (так как 0 делится на любое целое число, кроме нуля).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Расширенный алгоритм Евклида для целых чисел'''&lt;br /&gt;
&lt;br /&gt;
Рассмотрим расширенный алгоритм Евклида для нахождения линейного представления наибольшего общего делителя &amp;lt;math&amp;gt;(a,b) = ax + by &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Значения &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt; вычисляются в серии шагов, в каждом из которых мы выражаем &amp;lt;math&amp;gt;a_i&amp;lt;/math&amp;gt; (вычисленное в процессе работы алгоритма Евклида) в форме &amp;lt;math&amp;gt;a x_i + b y_i &amp;lt;/math&amp;gt;. А именно, рассмотрим последовательность&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;a_0 = a&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;a_0 = a x_0 + b y_0&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;a_1 = b&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;a_1 = a x_1 + b y_1&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;a_2 = a_0 - a_1 q_1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;a_2 = a x_2 + b y_2&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;a_3 = a_1 - a_2 q_2&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;a_3 = a x_3 + b y_3&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;\cdots&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;a_i = a_{i-2} - a_{i-1} q_{i-1}&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;a_i = a x_i + b y_i&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;\cdots&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;a_k = a_{k-2} - a_{k-1} q_{k-1}&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;a_k = a x_k + b y_k&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;0 = a_{k-1} - a_k q_k&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;0 = a x_{k+1} + b y_{k+1}&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В левом столбце алгоритма записана последовательность делений, которая получается в результате работы алгоритма Евклида и которая разрешена относительно остатков. Согласно теореме Ламе (1844 г.) число делений, которое необходимо выполнить для нахождения &amp;lt;math&amp;gt;(a,b)&amp;lt;/math&amp;gt;, не превосходит числа цифр в меньшем из чисел &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt;, умноженного на 5 (оценка наихудшего случая для алгоритма Евклида). Теорема Ламе доказывается на основе последовательности Фибоначчи.&lt;br /&gt;
&lt;br /&gt;
В правом столбце алгоритма каждый остаток выражен через &amp;lt;math&amp;gt;a x_i + b y_i&amp;lt;/math&amp;gt;. Надо вычислить &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;y_i&amp;lt;/math&amp;gt;. Очевидно, что &amp;lt;math&amp;gt;x_0 = 1, y_0 = 0&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;x_1 = 0, y_1 = 1&amp;lt;/math&amp;gt;. Сравнивая обе части на ''i''-м шаге, получим &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;a_i = a x_i + b y_i = a_{i-2} - a_{i-1} q_{i-1} = \left(a x_{i-2} + b y_{i-2} \right) - \left(a x_{i-1} + b y_{i-1} \right) q_{i-1} =&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \left(a x_{i-2} - x_{i-1} q_{i-1} \right) + \left(b y_{i-2} - y_{i-1} q_{i-1} \right)&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
откуда получается следующая индуктивная процедура вычисления &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;y_i&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;q_{i-1} = \left \lfloor \frac{a_{i-2}}{a_{i-1}} \right \rfloor&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;a_i = a_{i-2} - a_{i-1} q_{i-1}&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;x_i = x_{i-2} - x_{i-1} q_{i-1}&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;y_i = y_{i-2} - y_{i-1} q_{i-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Пример (Расширенный алгоритм Евклида)'''. &lt;br /&gt;
&lt;br /&gt;
Применим расширенный алгоритм Евклида к числам &amp;lt;math&amp;gt;a = 342, b = 612&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Весь алгоритм представим в виде следующей таблицы.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \begin{array}{|c|r|r|r|r|r|r|r|} \hline Iteration &amp;amp; q &amp;amp; A_0 &amp;amp; a_1 &amp;amp; x_0 &amp;amp; x_1 &amp;amp; Y_0 &amp;amp; y_1 &lt;br /&gt;
\\ \hline 0 &amp;amp; - &amp;amp; 342 &amp;amp; 612 &amp;amp;  1 &amp;amp;   0 &amp;amp;  0 &amp;amp;  1&lt;br /&gt;
\\ \hline 1 &amp;amp; 0 &amp;amp; 612 &amp;amp; 342 &amp;amp;  0 &amp;amp;   1 &amp;amp;  1 &amp;amp;  0&lt;br /&gt;
\\ \hline 2 &amp;amp; 1 &amp;amp; 342 &amp;amp; 270 &amp;amp;  1 &amp;amp;  -1 &amp;amp;  0 &amp;amp;  1&lt;br /&gt;
\\ \hline 3 &amp;amp; 1 &amp;amp; 270 &amp;amp;  72 &amp;amp; -1 &amp;amp;   2 &amp;amp;  1 &amp;amp; -1&lt;br /&gt;
\\ \hline 4 &amp;amp; 3 &amp;amp;  72 &amp;amp;  54 &amp;amp;  2 &amp;amp;  -7 &amp;amp; -1 &amp;amp;  4&lt;br /&gt;
\\ \hline 5 &amp;amp; 1 &amp;amp;  54 &amp;amp;  18 &amp;amp; -7 &amp;amp;   9 &amp;amp;  4 &amp;amp; -5&lt;br /&gt;
\\ \hline 6 &amp;amp; 3 &amp;amp;  18 &amp;amp;   0 &amp;amp;  9 &amp;amp; -34 &amp;amp; -5 &amp;amp; 19&lt;br /&gt;
&lt;br /&gt;
\\ \hline \end{array} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Заметим, что равенство &amp;lt;math&amp;gt;a_0 = a x_0 + b y_0&amp;lt;/math&amp;gt; выполняется на каждом шаге итерации. Алгоритм выдаёт &amp;lt;math&amp;gt;d = 18, x = 9, y = -5&amp;lt;/math&amp;gt; и тогда &amp;lt;math&amp;gt;18=342 \cdot 9 + 612 \cdot (-5)&amp;lt;/math&amp;gt;.&lt;/div&gt;</summary>
		<author><name>Isaeva</name></author>	</entry>

	<entry>
		<id>https://vscripts.ru/w/%D0%A2%D0%B5%D0%BE%D1%80%D0%B5%D0%BC%D0%B0_%D0%BE_%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D0%B8_%D1%81_%D0%BE%D1%81%D1%82%D0%B0%D1%82%D0%BA%D0%BE%D0%BC._%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%95%D0%B2%D0%BA%D0%BB%D0%B8%D0%B4%D0%B0</id>
		<title>Теорема о делении с остатком. Алгоритм Евклида</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%A2%D0%B5%D0%BE%D1%80%D0%B5%D0%BC%D0%B0_%D0%BE_%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D0%B8_%D1%81_%D0%BE%D1%81%D1%82%D0%B0%D1%82%D0%BA%D0%BE%D0%BC._%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%95%D0%B2%D0%BA%D0%BB%D0%B8%D0%B4%D0%B0"/>
				<updated>2015-01-23T13:02:23Z</updated>
		
		<summary type="html">&lt;p&gt;Isaeva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Напомним теорему о делении с остатком:&lt;br /&gt;
&lt;br /&gt;
'''Теорема о делении с остатком'''&lt;br /&gt;
&lt;br /&gt;
Для любых целых &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;b \not= 0&amp;lt;/math&amp;gt;, существует единственный набор целых чисел &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;, что &amp;lt;math&amp;gt;a = bq + r&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;0 \le r &amp;lt; |b|&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;|b|&amp;lt;/math&amp;gt; — модуль числа &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Легко доказывается, что для любых целых чисел &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;b \not= 0&amp;lt;/math&amp;gt; деление с остатком возможно и числа &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt; определяются однозначно. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Рассмотрим следующий пример:&lt;br /&gt;
&lt;br /&gt;
'''Пример'''&lt;br /&gt;
&lt;br /&gt;
Пусть модуль &amp;lt;math&amp;gt;p = 6&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Тогда имеем шесть классов разбиения множества целых чисел по модулю 6:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;K_0 = \left\{\ldots,-18,-12,-6,0,6,12,18,\ldots \right\}, r=0&amp;lt;/math&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;K_1 = \left\{\ldots,-17,-11,-5,1,7,13,19,\ldots \right\}, r=1&amp;lt;/math&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;K_2 = \left\{\ldots,-16,-10,-4,2,8,14,20,\ldots \right\}, r=2&amp;lt;/math&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;K_3 = \left\{\ldots,-15,-9,-3,3,9,15,21,\ldots \right\}, r=3&amp;lt;/math&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;K_4 = \left\{\ldots,-14,-8,-2,4,10,16,22,\ldots \right\}, r=4&amp;lt;/math&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;K_5 = \left\{\ldots,-13,-7,-1,5,11,17,23,\ldots \right\}, r=5&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
где через &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt; обозначен остаток от деления целого числа на 6.&lt;br /&gt;
&lt;br /&gt;
В данном примере полная система наименьших неотрицательных вычетов есть множество &amp;lt;math&amp;gt;\left\{0, 1, 2, 3, 4, 5 \right\}&amp;lt;/math&amp;gt;; полная система наименьших положительных вычетов – множество &amp;lt;math&amp;gt;\left\{0, 1, 2, 3, 4, 5, 6 \right\}&amp;lt;/math&amp;gt;; полная система наименьших по абсолютной величине вычетов – множество &amp;lt;math&amp;gt;\left\{-2,-1, 0, 1, 2, 3 \right\}&amp;lt;/math&amp;gt;; приведённая система вычетов – множество &amp;lt;math&amp;gt;\left\{1,5 \right\}&amp;lt;/math&amp;gt;, так как &amp;lt;math&amp;gt;\varphi(6) = 6\,\left(1-\frac{1}{2}\right)\left(1-\frac{1}{3}\right) = 2&amp;lt;/math&amp;gt; ; фактор-множество &amp;lt;math&amp;gt;Z{|{\equiv}_6} = \left\{K_0, K_1, K_2, K_3, K_4, K_5 \right\}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Один из методов выполнения арифметических операций над целыми числами основан на простых положениях теории чисел. Идея этого метода состоит в том, что целые числа представляются в одной из непозиционных систем – в системе остаточных классов. А именно: вместо операций над целыми числами оперируют с остатками от деления этих чисел на заранее выбранные числа – модули &amp;lt;math&amp;gt;p_1, p_2, \ldots, p_n&amp;lt;/math&amp;gt;. &lt;br /&gt;
Чаще всего модули &amp;lt;math&amp;gt;p_1, p_2, \ldots, p_n&amp;lt;/math&amp;gt; выбирают из множества простых чисел.&lt;br /&gt;
&lt;br /&gt;
Пусть&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;A \equiv {\alpha}_1 \pmod{p_1}&amp;lt;/math&amp;gt;,&lt;br /&gt;
: &amp;lt;math&amp;gt;A \equiv {\alpha}_2 \pmod{p_2}&amp;lt;/math&amp;gt;,&lt;br /&gt;
: &amp;lt;math&amp;gt;\ldots&amp;lt;/math&amp;gt;,&lt;br /&gt;
: &amp;lt;math&amp;gt;A \equiv {\alpha}_n \pmod{p_n}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Так как в кольце целых чисел имеет место теорема о делении с остатком, т. е. &amp;lt;math&amp;gt;\forall a \in Z, \forall b \in Z, b\not= 0 \, \exist q \in Z, \exist r \in Z (0 \le r &amp;lt;b):\, a=bq+r &amp;lt;/math&amp;gt;, то кольцо Z, по определению, является евклидовым. Таким образом, в качестве чисел &amp;lt;math&amp;gt; {\alpha}_i, i=0,\ldots,n &amp;lt;/math&amp;gt; можно выбрать остатки от деления числа &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt; на &amp;lt;math&amp;gt;p_i&amp;lt;/math&amp;gt; соответственно.&lt;br /&gt;
&lt;br /&gt;
Рассмотрим гомоморфное отображение: &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;Z \to Z{|{\equiv}_{p_1}} \times Z{|{\equiv}_{p_2}} \times \ldots \times Z{|{\equiv}_{p_n}} &amp;lt;/math&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
Тогда каждому целому числу А можно поставить в соответствие кортеж &amp;lt;math&amp;gt;\left\{{\alpha}_1, {\alpha}_2, \ldots, {\alpha}_n \right\}&amp;lt;/math&amp;gt; наименьших неотрицательных вычетов по одному из соответствующих классов. &lt;br /&gt;
&lt;br /&gt;
Важно отметить, что при преобразовании числа нет потери информации, если выполнено условие &amp;lt;math&amp;gt;A &amp;lt; p_1 \cdot p_2 \cdot \ldots \cdot p_n&amp;lt;/math&amp;gt;, поскольку всегда, зная &amp;lt;math&amp;gt;\left({\alpha}_1, {\alpha}_2, \ldots, {\alpha}_n \right)&amp;lt;/math&amp;gt; можно восстановить само число &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt;. Поэтому кортеж  можно рассматривать как один из способов представления целого числа &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt; – модулярное представление, или представление в системе остаточных классов (СОК).&lt;br /&gt;
&lt;br /&gt;
Для дальнейшего используем расширенный алгоритм Евклида или его аналог – алгоритм нахождения линейного представления наибольшего общего делителя целых чисел: если числа а и b одновременно не равны нулю, то существуют целые числа &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt;, такие, что &amp;lt;math&amp;gt;a \cdot b = a \cdot x + b \cdot y&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Действительно, пусть &amp;lt;math&amp;gt;d&amp;lt;/math&amp;gt; – наименьшее целое положительное число вида &amp;lt;math&amp;gt;a \cdot x + b \cdot y&amp;lt;/math&amp;gt;, например, &amp;lt;math&amp;gt;d = a \cdot x_0 + b \cdot y_0&amp;lt;/math&amp;gt;, где числа &amp;lt;math&amp;gt;x_0&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;y_0&amp;lt;/math&amp;gt; не обязательно определены однозначно. Существование числа &amp;lt;math&amp;gt;d&amp;lt;/math&amp;gt; следует только из принципа полной упорядоченности. Очевидно, что &amp;lt;math&amp;gt;d &amp;gt; 0&amp;lt;/math&amp;gt;. Остаётся показать, что &amp;lt;math&amp;gt;d = (a,b)&amp;lt;/math&amp;gt;. Для этого надо проверить выполнение двух условий: а) &amp;lt;math&amp;gt;d|a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;d|b&amp;lt;/math&amp;gt; б) если &amp;lt;math&amp;gt;c|a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;c|b&amp;lt;/math&amp;gt;&lt;br /&gt;
то &amp;lt;math&amp;gt;c|d&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
От противного: допустим, что свойство а) не выполняется, для определенности положим, что не выполнено &amp;lt;math&amp;gt;d|b&amp;lt;/math&amp;gt;. Тогда по теореме о делении с остатком &amp;lt;math&amp;gt;a = dq + r&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;0 \le r &amp;lt; |d|&amp;lt;/math&amp;gt;, и, следовательно, &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;r=b-dq = b-(ax_0+by_0)q = a(-qx_0)+b(1-qy_0)&amp;lt;/math&amp;gt;, &lt;br /&gt;
&lt;br /&gt;
что противоречит минимальности &amp;lt;math&amp;gt;d&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Выполнение свойства б) проверяется непосредственно: &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;c|a \Rightarrow \left(\exist q_1 \in Z\right)\left(a = q_1\, c\right)&amp;lt;/math&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;c|b \Rightarrow \left(\exist q_2 \in Z\right)\left(a = q_2\, c\right)&amp;lt;/math&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;d=ax_0 + by_0 \Rightarrow d = q_1 c x_0 + q_2 c y_0 \Rightarrow d = \left(q_1 x_0 + q_2 y_0\right) c|d &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Алгоритм Евклида для целых чисел'''&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; — целые числа, не равные одновременно нулю, и последовательность чисел&lt;br /&gt;
: &amp;lt;math&amp;gt; a &amp;gt; b &amp;gt; r_1 &amp;gt; r_2 &amp;gt; r_3 &amp;gt; r_4 &amp;gt; \cdots &amp;gt;r_n&amp;lt;/math&amp;gt;&lt;br /&gt;
определена тем, что каждое &amp;lt;math&amp;gt;r_k&amp;lt;/math&amp;gt; — это остаток от деления предпредыдущего числа на предыдущее, а предпоследнее делится на последнее нацело, то есть&lt;br /&gt;
: &amp;lt;math&amp;gt;a = bq_0 + r_1&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;b = r_1q_1 + r_2&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;r_1 = r_2q_2 + r_3&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;\cdots&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;r_{k-2} = r_{k-1} q_{k-1} + r_k&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;\cdots&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;r_{n-2} = r_{n-1}q_{n-1}+ r_n&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;r_{n-1} = r_n q_n&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Тогда '''НОД''' &amp;lt;math&amp;gt;(a,b)&amp;lt;/math&amp;gt;, наибольший общий делитель &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt;, равен&lt;br /&gt;
&amp;lt;math&amp;gt;r_n&amp;lt;/math&amp;gt;, последнему ненулевому члену этой последовательности.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Существование''' таких &amp;lt;math&amp;gt;r_1, r_2, ...&amp;lt;/math&amp;gt;, то есть возможность деления с остатком &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; на &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; для любого целого &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и целого &amp;lt;math&amp;gt;b\ne 0&amp;lt;/math&amp;gt;, доказывается индукцией.&lt;br /&gt;
&lt;br /&gt;
'''Корректность''' этого алгоритма вытекает из следующих двух утверждений:&lt;br /&gt;
&lt;br /&gt;
* Пусть &amp;lt;math&amp;gt;a = bq + r&amp;lt;/math&amp;gt;, тогда '''НОД''' &amp;lt;math&amp;gt;(a,b)&amp;lt;/math&amp;gt; = '''НОД''' &amp;lt;math&amp;gt;(b,r)&amp;lt;/math&amp;gt;.&lt;br /&gt;
* '''НОД''' &amp;lt;math&amp;gt;(0,r)&amp;lt;/math&amp;gt; = &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt; для любого ненулевого &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt; (так как 0 делится на любое целое число, кроме нуля).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Расширенный алгоритм Евклида для целых чисел'''&lt;br /&gt;
&lt;br /&gt;
Рассмотрим расширенный алгоритм Евклида для нахождения линейного представления наибольшего общего делителя &amp;lt;math&amp;gt;(a,b) = ax + by &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Значения &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt; вычисляются в серии шагов, в каждом из которых мы выражаем &amp;lt;math&amp;gt;a_i&amp;lt;/math&amp;gt; (вычисленное в процессе работы алгоритма Евклида) в форме &amp;lt;math&amp;gt;a x_i + b y_i &amp;lt;/math&amp;gt;. А именно, рассмотрим последовательность&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;a_0 = a&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;a_0 = a x_0 + b y_0&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;a_1 = b&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;a_1 = a x_1 + b y_1&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;a_2 = a_0 - a_1 q_1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;a_2 = a x_2 + b y_2&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;a_3 = a_1 - a_2 q_2&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;a_3 = a x_3 + b y_3&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;\cdots&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;a_i = a_{i-2} - a_{i-1} q_{i-1}&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;a_i = a x_i + b y_i&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;\cdots&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;a_k = a_{k-2} - a_{k-1} q_{k-1}&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;a_k = a x_k + b y_k&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;0 = a_{k-1} - a_k q_k&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;0 = a x_{k+1} + b y_{k+1}&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В левом столбце алгоритма записана последовательность делений, которая получается в результате работы алгоритма Евклида и которая разрешена относительно остатков. Согласно теореме Ламе (1844 г.) число делений, которое необходимо выполнить для нахождения &amp;lt;math&amp;gt;(a,b)&amp;lt;/math&amp;gt;, не превосходит числа цифр в меньшем из чисел &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt;, умноженного на 5 (оценка наихудшего случая для алгоритма Евклида). Теорема Ламе доказывается на основе последовательности Фибоначчи.&lt;br /&gt;
&lt;br /&gt;
В правом столбце алгоритма каждый остаток выражен через &amp;lt;math&amp;gt;a x_i + b y_i&amp;lt;/math&amp;gt;. Надо вычислить &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;y_i&amp;lt;/math&amp;gt;. Очевидно, что &amp;lt;math&amp;gt;x_0 = 1, y_0 = 0&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;x_1 = 0, y_1 = 1&amp;lt;/math&amp;gt;. Сравнивая обе части на ''i''-м шаге, получим &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;a_i = a x_i + b y_i = a_{i-2} - a_{i-1} q_{i-1} = \left(a x_{i-2} + b y_{i-2} \right) - \left(a x_{i-1} + b y_{i-1} \right) q_{i-1} = \left(a x_{i-2} - x_{i-1} q_{i-1} \right) + \left(b y_{i-2} - y_{i-1} q_{i-1} \right)&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
откуда получается следующая индуктивная процедура вычисления &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;y_i&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;q_{i-1} = \left \lfloor \frac{a_{i-2}}{a_{i-1}} \right \rfloor&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;a_i = a_{i-2} - a_{i-1} q_{i-1}&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;x_i = x_{i-2} - x_{i-1} q_{i-1}&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;y_i = y_{i-2} - y_{i-1} q_{i-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Пример (Расширенный алгоритм Евклида)'''. &lt;br /&gt;
&lt;br /&gt;
Применим расширенный алгоритм Евклида к числам &amp;lt;math&amp;gt;a = 342, b = 612&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Весь алгоритм представим в виде следующей таблицы.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \begin{array}{|c|r|r|r|r|r|r|r|} \hline Iteration &amp;amp; q &amp;amp; A_0 &amp;amp; a_1 &amp;amp; x_0 &amp;amp; x_1 &amp;amp; Y_0 &amp;amp; y_1 &lt;br /&gt;
\\ \hline 0 &amp;amp; - &amp;amp; 342 &amp;amp; 612 &amp;amp;  1 &amp;amp;   0 &amp;amp;  0 &amp;amp;  1&lt;br /&gt;
\\ \hline 1 &amp;amp; 0 &amp;amp; 612 &amp;amp; 342 &amp;amp;  0 &amp;amp;   1 &amp;amp;  1 &amp;amp;  0&lt;br /&gt;
\\ \hline 2 &amp;amp; 1 &amp;amp; 342 &amp;amp; 270 &amp;amp;  1 &amp;amp;  -1 &amp;amp;  0 &amp;amp;  1&lt;br /&gt;
\\ \hline 3 &amp;amp; 1 &amp;amp; 270 &amp;amp;  72 &amp;amp; -1 &amp;amp;   2 &amp;amp;  1 &amp;amp; -1&lt;br /&gt;
\\ \hline 4 &amp;amp; 3 &amp;amp;  72 &amp;amp;  54 &amp;amp;  2 &amp;amp;  -7 &amp;amp; -1 &amp;amp;  4&lt;br /&gt;
\\ \hline 5 &amp;amp; 1 &amp;amp;  54 &amp;amp;  18 &amp;amp; -7 &amp;amp;   9 &amp;amp;  4 &amp;amp; -5&lt;br /&gt;
\\ \hline 6 &amp;amp; 3 &amp;amp;  18 &amp;amp;   0 &amp;amp;  9 &amp;amp; -34 &amp;amp; -5 &amp;amp; 19&lt;br /&gt;
&lt;br /&gt;
\\ \hline \end{array} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Заметим, что равенство &amp;lt;math&amp;gt;a_0 = a x_0 + b y_0&amp;lt;/math&amp;gt; выполняется на каждом шаге итерации. Алгоритм выдаёт &amp;lt;math&amp;gt;d = 18, x = 9, y = -5&amp;lt;/math&amp;gt; и тогда &amp;lt;math&amp;gt;18=342 \cdot 9 + 612 \cdot (-5)&amp;lt;/math&amp;gt;.&lt;/div&gt;</summary>
		<author><name>Isaeva</name></author>	</entry>

	<entry>
		<id>https://vscripts.ru/w/%D0%98%D0%BD%D1%82%D0%B5%D1%80%D0%B2%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D1%8B_%D0%BF%D0%B5%D1%80%D0%B5%D0%B2%D0%BE%D0%B4%D0%B0</id>
		<title>Интервальные методы перевода</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%98%D0%BD%D1%82%D0%B5%D1%80%D0%B2%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D1%8B_%D0%BF%D0%B5%D1%80%D0%B5%D0%B2%D0%BE%D0%B4%D0%B0"/>
				<updated>2015-01-23T13:00:23Z</updated>
		
		<summary type="html">&lt;p&gt;Isaeva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Достаточно эффективными методами перевода чисел из СОК в ПСС являются интервальные методы, основанные на интервальных характеристиках чисел. Одна из таких характеристик – номер интервала.&lt;br /&gt;
&lt;br /&gt;
Рассмотрим СОК, заданную системой оснований &amp;lt;math&amp;gt;p_1, p_2, \ldots, p_n&amp;lt;/math&amp;gt; с объёмом диапазона &amp;lt;math&amp;gt;P = p_1\cdot p_2\cdot \ldots \cdot p_n&amp;lt;/math&amp;gt;. Выберем дробящий модуль &amp;lt;math&amp;gt;p_i&amp;lt;/math&amp;gt; и проведём дробление заданного диапазона на интервалы путём деления &amp;lt;math&amp;gt;P&amp;lt;/math&amp;gt; на модуль &amp;lt;math&amp;gt;p_i&amp;lt;/math&amp;gt;. Тогда количество интервалов &amp;lt;math&amp;gt;m = P_i = \frac {P}{p_i}&amp;lt;/math&amp;gt;, а длина интервала определяется величиной модуля. &lt;br /&gt;
&lt;br /&gt;
В результате величину любого числа &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt;, заданного в СОК по выбранным основаниям, можно определить по номеру интервала:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;l_A = \left [\frac {A}{p_i}\right ]&amp;lt;/math&amp;gt; (1), &lt;br /&gt;
&lt;br /&gt;
в котором находится число &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt;, и по цифре &amp;lt;math&amp;gt;\alpha_i&amp;lt;/math&amp;gt; числа &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt; в СОК по модулю &amp;lt;math&amp;gt;p_i&amp;lt;/math&amp;gt;, т.е.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;A = p_i \cdot l_A + {\alpha}_i&amp;lt;/math&amp;gt; (2).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Так как &amp;lt;math&amp;gt;(p_i, P_i) = 1&amp;lt;/math&amp;gt;, то по теореме Эйлера:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;{P_i}^{\varphi(p_i)} \equiv 1\pmod {p_i}&amp;lt;/math&amp;gt; (3),&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
где &amp;lt;math&amp;gt;\varphi(p_i)&amp;lt;/math&amp;gt; - – функция Эйлера. &lt;br /&gt;
Причём если &amp;lt;math&amp;gt;p_i&amp;lt;/math&amp;gt; – простое число, то &amp;lt;math&amp;gt;\varphi(p_i) = p_i - 1&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Число &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt; можно представить в виде &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;A = \left| \sum _{i = 1}^{n} {P_i}^{\varphi(p_i)} \cdot \alpha_i \right| \pmod P&amp;lt;/math&amp;gt; (4).&lt;br /&gt;
&lt;br /&gt;
Для определения номера интервала &amp;lt;math&amp;gt;l_A&amp;lt;/math&amp;gt;, подставим выражение (4) в (1):&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;l_A = \left [\frac {A}{p_i}\right ]&amp;lt;/math&amp;gt;&lt;/div&gt;</summary>
		<author><name>Isaeva</name></author>	</entry>

	<entry>
		<id>https://vscripts.ru/w/%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BE%D1%81%D1%82%D0%B0%D1%82%D0%BE%D1%87%D0%BD%D1%8B%D1%85_%D0%BA%D0%BB%D0%B0%D1%81%D1%81%D0%BE%D0%B2_-_%D0%B2%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5</id>
		<title>Система остаточных классов - введение</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BE%D1%81%D1%82%D0%B0%D1%82%D0%BE%D1%87%D0%BD%D1%8B%D1%85_%D0%BA%D0%BB%D0%B0%D1%81%D1%81%D0%BE%D0%B2_-_%D0%B2%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5"/>
				<updated>2015-01-23T12:58:45Z</updated>
		
		<summary type="html">&lt;p&gt;Isaeva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Теоретико-числовая база построения системы остаточных классов =&lt;br /&gt;
&lt;br /&gt;
Напомним определение деления с остатком.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Определение''' &lt;br /&gt;
&lt;br /&gt;
Говорят, что целое число &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; делится на натуральное число &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; с остатком, если имеется пара целых чисел &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;, таких, что &amp;lt;math&amp;gt;n = m \cdot q+r&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;0\le r&amp;lt;m&amp;lt;/math&amp;gt;. &lt;br /&gt;
&amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; называется делимым, &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; - делителем, &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; - неполным частным, &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt; - остатком.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Для целых чисел:&lt;br /&gt;
&lt;br /&gt;
'''Определение''' &lt;br /&gt;
&lt;br /&gt;
Говорят, что целое число &amp;lt;math&amp;gt;n \in Z&amp;lt;/math&amp;gt; делится на целое число &amp;lt;math&amp;gt;m \in Z&amp;lt;/math&amp;gt; с остатком, если имеется пара целых чисел &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;, таких, что &amp;lt;math&amp;gt;n = m \cdot q+r&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;0\le r&amp;lt;|m|&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Пример''': &lt;br /&gt;
&lt;br /&gt;
'''48''' при делении на '''5''' даёт остаток '''3''', т.к. &amp;lt;math&amp;gt;48=5\cdot 9+3&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;0\le 3&amp;lt;5&amp;lt;/math&amp;gt;, '''-48''' при делении на '''5''' даёт остаток '''2''', т.к. &amp;lt;math&amp;gt;-48=5\cdot (-10)+2&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;0\le 2&amp;lt;5&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Сравнения и их основные свойства ==&lt;br /&gt;
&lt;br /&gt;
Возьмём произвольное фиксированное натуральное число &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; и будем рассматривать остатки при делении на &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; различных целых чисел.&lt;br /&gt;
&lt;br /&gt;
При рассмотрении свойств этих остатков и проведении операций над ними удобно ввести понятие сравнения по модулю.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Определение''' &lt;br /&gt;
&lt;br /&gt;
Два целых числа &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt; b &amp;lt;/math&amp;gt; называются '''сравнимыми по модулю &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt;''', если их разность &amp;lt;math&amp;gt; a-b &amp;lt;/math&amp;gt; делится без остатка на &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Символически сравнимость записывается в виде формулы ('''сравнения'''):&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;a \equiv b \pmod{m}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Число &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; называется '''модулем''' сравнения.&lt;br /&gt;
&lt;br /&gt;
Эквивалентная формулировка:&lt;br /&gt;
&lt;br /&gt;
'''Определение''' &lt;br /&gt;
&lt;br /&gt;
Целые числа &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt; b &amp;lt;/math&amp;gt; называются '''сравнимыми по модулю &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt;''', если остатки от деления этих чисел на &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; равны.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Отношение сравнимости по модулю &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; обладает свойствами рефлексивности, симметричности и транзитивности, т.е. является отношением эквивалентности.&lt;br /&gt;
&lt;br /&gt;
Отнесём все целые числа, дающие при делении на &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; один и тот же остаток в один класс, поэтому получится &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; различных классов по модулю &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt;.&lt;br /&gt;
Множество всех чисел сравнимых с &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; по модулю &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; называется классом вычетов &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; по модулю &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Подробнее о свойствах сравнений и классах вычетов смотри [[Сравнения и их основные свойства| Сравнения и их основные свойства]] &lt;br /&gt;
&lt;br /&gt;
== Теорема о делении с остатком. Алгоритм Евклида ==&lt;br /&gt;
&lt;br /&gt;
'''Теорема о делении с остатком'''&lt;br /&gt;
&lt;br /&gt;
Для любых целых &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;b \not= 0&amp;lt;/math&amp;gt;, существует единственный набор целых чисел &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;, что &amp;lt;math&amp;gt;a = bq + r&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;0 \le r &amp;lt; |b|&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;|b|&amp;lt;/math&amp;gt; — модуль числа &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
На этой операции основан алгоритм Евклида нахождения наибольшего общего делителя двух целых чисел.&lt;br /&gt;
&lt;br /&gt;
'''Алгоритм Евклида для целых чисел'''&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; — целые числа, не равные одновременно нулю, и последовательность чисел&lt;br /&gt;
: &amp;lt;math&amp;gt; a &amp;gt; b &amp;gt; r_1 &amp;gt; r_2 &amp;gt; r_3 &amp;gt; r_4 &amp;gt; \cdots &amp;gt;r_n&amp;lt;/math&amp;gt;&lt;br /&gt;
определена тем, что каждое &amp;lt;math&amp;gt;r_k&amp;lt;/math&amp;gt; — это остаток от деления предпредыдущего числа на предыдущее, а предпоследнее делится на последнее нацело, то есть&lt;br /&gt;
: &amp;lt;math&amp;gt;a = bq_0 + r_1&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;b = r_1q_1 + r_2&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;r_1 = r_2q_2 + r_3&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;\cdots&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;r_{k-2} = r_{k-1} q_{k-1} + r_k&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;\cdots&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;r_{n-2} = r_{n-1}q_{n-1}+ r_n&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;r_{n-1} = r_n q_n&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Тогда '''НОД''' &amp;lt;math&amp;gt;(a,b)&amp;lt;/math&amp;gt;, наибольший общий делитель &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt;, равен&lt;br /&gt;
&amp;lt;math&amp;gt;r_n&amp;lt;/math&amp;gt;, последнему ненулевому члену этой последовательности.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Существование''' таких &amp;lt;math&amp;gt;r_1, r_2, ...&amp;lt;/math&amp;gt;, то есть возможность деления с остатком &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; на &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; для любого целого &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и целого &amp;lt;math&amp;gt;b\ne 0&amp;lt;/math&amp;gt;, доказывается индукцией.&lt;br /&gt;
&lt;br /&gt;
'''Корректность''' этого алгоритма вытекает из следующих двух утверждений:&lt;br /&gt;
&lt;br /&gt;
* Пусть &amp;lt;math&amp;gt;a = bq + r&amp;lt;/math&amp;gt;, тогда '''НОД''' &amp;lt;math&amp;gt;(a,b)&amp;lt;/math&amp;gt; = '''НОД''' &amp;lt;math&amp;gt;(b,r)&amp;lt;/math&amp;gt;.&lt;br /&gt;
* '''НОД''' &amp;lt;math&amp;gt;(0,r)&amp;lt;/math&amp;gt; = &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt; для любого ненулевого &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt; (так как 0 делится на любое целое число, кроме нуля).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Смотри [[Теорема о делении с остатком. Алгоритм Евклида|Теорема о делении с остатком. Алгоритм Евклида]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Китайская теорема об остатках ==&lt;br /&gt;
&lt;br /&gt;
Фундаментальным положением, лежащим в основе модулярного представления чисел, является китайская теорема об остатках (Chinese Remainder Theorem - CRT). &lt;br /&gt;
Например, эта теорема гарантирует, что при правильном выборе модулей СОК  &lt;br /&gt;
каждое число из динамического диапазона имеет в СОК единственное представление, &lt;br /&gt;
и по этому представлению можно определить представленное число.&lt;br /&gt;
В своей первоначальной формулировке эта теорема была доказана китайским математиком Сунь-Цзы приблизительно в 100 г. н.э.&lt;br /&gt;
В современной формулировке теорема звучит так:&lt;br /&gt;
&lt;br /&gt;
'''Теорема'''&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;p_1, p_2, \ldots, p_k&amp;lt;/math&amp;gt; - попарно взаимно простые числа, большие 1, и пусть &amp;lt;math&amp;gt;p = p_1 \cdot p_2 \cdot \ldots  \cdot p_k&amp;lt;/math&amp;gt;. Тогда существует единственное неотрицательное решение по модулю &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; следующей системы сравнений:&lt;br /&gt;
: &amp;lt;math&amp;gt;x \equiv a_1 \pmod{p_1}&amp;lt;/math&amp;gt;,&lt;br /&gt;
: &amp;lt;math&amp;gt;x \equiv a_2 \pmod{p_2}&amp;lt;/math&amp;gt;,&lt;br /&gt;
: &amp;lt;math&amp;gt;\ldots&amp;lt;/math&amp;gt;,&lt;br /&gt;
: &amp;lt;math&amp;gt;x \equiv a_k \pmod{p_k}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Другими словами, отображение, которое каждому целому числу &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;0\le x &amp;lt;p&amp;lt;/math&amp;gt;, ставит в соответствие кортеж &amp;lt;math&amp;gt;a_1, a_2,\ldots, a_k&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;x \equiv a_i \pmod{p_i}, i = 1, \ldots k&amp;lt;/math&amp;gt; является биекцией кольца &amp;lt;math&amp;gt;Z_P&amp;lt;/math&amp;gt; на декартово произведение &amp;lt;math&amp;gt;Z_{p_1} \times Z_{p_2} \times \ldots \times Z_{p_k}&amp;lt;/math&amp;gt;  колец &amp;lt;math&amp;gt;Z_{p_1}, Z_{p_2}, \ldots, Z_{p_k}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Подробности и доказательство теоремы смотри [[Китайская теорема об остатках| Китайская теорема об остатках]].&lt;br /&gt;
&lt;br /&gt;
Смотри также [[Описание КТО II|Китайская теорема об остатках(КТО II)]], [[Описание КТО III|Китайская теорема об остатках (КТО III)]].&lt;br /&gt;
&lt;br /&gt;
== Теоремы Эйлера и Ферма, их роль в вычислении мультипликативных обратных элементов по заданному модулю ==&lt;br /&gt;
&lt;br /&gt;
'''Определение'''&lt;br /&gt;
&lt;br /&gt;
Функция Эйлера &amp;lt;math&amp;gt;\varphi(n)&amp;lt;/math&amp;gt; — это количество чисел от &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; до &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt;, взаимно простых с &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Т.е. это количество таких натуральных чисел из отрезка [1; n], наибольший общий делитель (НОД) которых с &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; равен единице.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Tеоремa Эйлера'''&lt;br /&gt;
&lt;br /&gt;
Если &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; взаимно просты, то &amp;lt;math&amp;gt;a^{\varphi(p)} \equiv 1 \pmod p&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;\varphi(n)&amp;lt;/math&amp;gt; - функция Эйлера.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В частном случае, когда &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; простое, теорема Эйлера превращается в так называемую малую теорему Ферма:&lt;br /&gt;
Частным случаем теоремы Эйлера является малая теорема Ферма.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Малая теорема Ферма'''&lt;br /&gt;
&lt;br /&gt;
Если &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; - простое число и &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; - произвольное целое число, не делящееся на &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;, то &amp;lt;math&amp;gt;a^{p-1} \equiv 1 \pmod p &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Смотри [[Функция Эйлера|Функция Эйлера]], [[Вычисление мультипликативных обратных элементов по заданному модулю|Вычисление мультипликативных обратных элементов по заданному модулю]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Числа Мерсенна, Ферма и операции над ними ==&lt;br /&gt;
&lt;br /&gt;
При рассмотрении отдельных классов простых чисел интерес представляет вопрос о простых числах специального вида, например, числа Мерсенна или числа Ферма.&lt;br /&gt;
&lt;br /&gt;
'''Определение'''&lt;br /&gt;
&lt;br /&gt;
'''Числа Мерсенна''' — числа вида &amp;lt;math&amp;gt;M_n = 2^n - 1&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; — натуральное число.&lt;br /&gt;
Названы в честь французского математика Марена Мерсенна.&lt;br /&gt;
&lt;br /&gt;
Иногда числами Мерсенна называют только числа &amp;lt;math&amp;gt;M_n&amp;lt;/math&amp;gt; с нечетными или простыми индексами ''n''. &lt;br /&gt;
&lt;br /&gt;
Множества простых чисел в этих последовательностях совпадают, а потому понятие ''простого числа Мерсенна'' не зависит от того, как именно определяются числа Мерсенна.&lt;br /&gt;
&lt;br /&gt;
При простых значениях n = p число   может оказаться простым, но может быть составным.&lt;br /&gt;
Например, при &amp;lt;math&amp;gt;p = 2, 3, 5, 7, 13, 17, 19&amp;lt;/math&amp;gt; мы получаем простые числа Мерсенна: &amp;lt;math&amp;gt;3, 7, 31, 127, 8191, 131071&amp;lt;/math&amp;gt;, а при &amp;lt;math&amp;gt;p = 11, 23, 29&amp;lt;/math&amp;gt; числа &amp;lt;math&amp;gt;2^p - 1&amp;lt;/math&amp;gt; - составные. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Определение'''&lt;br /&gt;
&lt;br /&gt;
'''Числа Ферма''' — числа вида &amp;lt;math&amp;gt;F_n=2^{2^n}+1&amp;lt;/math&amp;gt;, где ''n'' — неотрицательное целое число. &lt;br /&gt;
&lt;br /&gt;
При &amp;lt;math&amp;gt;n = 0, 1, 2, 3, 4&amp;lt;/math&amp;gt; числа Ферма простые: &amp;lt;math&amp;gt;3, 5, 17, 257, 65537&amp;lt;/math&amp;gt;. Известно, что для &amp;lt;math&amp;gt;5\le n \le 32&amp;lt;/math&amp;gt; числа &amp;lt;math&amp;gt;F_n&amp;lt;/math&amp;gt; являются составными. На 2014 г. не найдено ни одного простого числа такого вида для &amp;lt;math&amp;gt;n&amp;gt;4&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Все числа Мерсенна и Ферма – взаимно простые. Кроме того, для модулей СОК вида &amp;lt;math&amp;gt;M_n = 2^n - 1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;M_n = 2^n + 1&amp;lt;/math&amp;gt; легко реализуется преобразование и арифметические операции. Поэтому эффективно выбирать модули СОК в виде чисел Мерсенна и Ферма. &lt;br /&gt;
&lt;br /&gt;
Смотри [[Числа Мерсенна и Ферма|Числа Мерсенна и Ферма]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Математические модели модулярного представления и параллельной обработки информации =&lt;br /&gt;
&lt;br /&gt;
== Представление числа в системе остаточных классов. Модульные операции ==&lt;br /&gt;
&lt;br /&gt;
Всякая вычислительная структура тесно связана с системой счисления, в которой она работает. Под системой счисления понимают совокупность приёмов обозначения (записи) чисел, или, точнее, способ кодирования (представления) элементов некоторой конечной модели действительных чисел словами одного или более алфавитов. Кодирование представляет собой инъективное отображение диапазона системы счисления на декартово произведение его алфавитов, т. е. &amp;lt;math&amp;gt;F:D\mapsto A&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;A = A_1 \times  A_2 \times \ldots \times A_n&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Иначе говоря, отображение &amp;lt;math&amp;gt;F&amp;lt;/math&amp;gt; элементу &amp;lt;math&amp;gt;x\in D&amp;lt;/math&amp;gt; ставит в соответствие кодовое слово &amp;lt;math&amp;gt;(x_1, x_2, \ldots , x_n) &amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;x_i = A_i (i=1,\ldots,n) &amp;lt;/math&amp;gt; - &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt;-я цифра, &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; – длина кода. &lt;br /&gt;
&lt;br /&gt;
С помощью обратного отображения &amp;lt;math&amp;gt;F^{-1}&amp;lt;/math&amp;gt;, которое называют декодированием, можно определить систему счисления.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
К любой кодовой системе применимы следующие требования:&lt;br /&gt;
&lt;br /&gt;
* возможность представления в данной системе любой величины в рассматриваемом, заранее назначенном диапазоне;&lt;br /&gt;
* единственность представления – любая кодовая комбинация соответствует одному и только одному числу в заданном диапазоне;&lt;br /&gt;
* простота оперирования числами в данной системе счисления.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Таким образом, коды чисел являются именами числовых объектов, составляющих числовой диапазон. Диапазоны как модели вещественных чисел должны с максимально доступной полнотой и простотой отражать свойства числового множества.&lt;br /&gt;
Всякое представление чисел рабочего диапазона является лишь составным элементом соответствующей машинной арифметики и не может рассматриваться отдельно от неё. Арифметические свойства той или иной системы счисления прежде всего определяются характером межразрядных связей, появляющихся в ходе выполнения операций над кодовыми словами. Исследования показали, что в рамках обычной позиционной системы счисления (ПСС) значительного ускорения выполнения операций добиться невозможно. Это объясняется тем, что в ПСС значение разряда любого числа, кроме младшего, являющегося результатом двухместной арифметической операции, зависит не только от значения одноимённых операндов, но и от всех младших разрядов, т. е. ПСС обладает строго последовательной структурой. Сегодня, предпочтение отдаётся вычислительным структурам, обладающими способностями к параллельной обработке информации. Этими особенностями обладают непозиционные коды с параллельной структурой, которые позволяют реализовать идею распараллеливания операций на уровне выполнения элементарных арифметических действий. &lt;br /&gt;
&lt;br /&gt;
Представление чисел в виде набора остатков от деления на выбранные натуральные модули - основания системы называется системой остаточных классов - СОК (residue number system - RNS) или модулярной системой счисления - МСС (modular system).&lt;br /&gt;
&lt;br /&gt;
Основным достоинством системы остаточных классов является сравнительная простота выполнения модульных операций (сложения, вычитания, умножения). Кроме модульных операций, в цифровых устройствах часто выполняются и такие операции, которые требуют знания всего числа в целом. Данные операции являются немодульными и относятся к классу позиционных операций, которые являются наиболее трудоемкими в непозиционной СОК.&lt;br /&gt;
&lt;br /&gt;
Смотри [[Представление числа в системе остаточных классов|Представление числа в системе остаточных классов]], [[Модульные операции|Модульные операции]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Основные методы и алгоритмы перехода от позиционного представления к остаткам ==&lt;br /&gt;
&lt;br /&gt;
Обычно исходные данные для вычислений представлены в каком-либо традиционном представлении, двоичном или десятичном. В таком же виде ожидаются результаты вычислений. Отсюда понятна необходимость перевода чисел из позиционного представления в представление СОК (прямое преобразование) и обратно (обратное преобразование). Одной из первых немодульных процедур является прямое преобразование позиционных кодов в код СОК.&lt;br /&gt;
&lt;br /&gt;
Перевод числа в систему остаточных классов можно осуществить непосредственно методом деления, с модулями СОК в качестве делителей. Однако из-за сложности операции деления техническая реализация такого метода неэффективна.&lt;br /&gt;
Поэтому рассматриваются другие методы.&lt;br /&gt;
Например, часто используется метод перевода числа из позиционной системы счисления в СОК, не содержащий операции деления, называемый методом непосредственного суммирования модульных значений разрядов позиционного числа.&lt;br /&gt;
&lt;br /&gt;
Смотри [[Алгоритмы перехода от позиционного представления к остаткам|Алгоритмы перехода от позиционного представления к остаткам]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Восстановление позиционного представления числа по его остаткам ==&lt;br /&gt;
&lt;br /&gt;
Система остаточных классов обладает одной особенностью, которую можно отнести к недостаткам этой системы: нельзя визуально определить величину числа, представленного в СОК, а следовательно затруднительно и выполнение таких операций, как сравнение чисел, определение знака числа. Один из путей решения этой проблемы состоит в преобразовании чисел из СОК в позиционную систему счисления. Оценим существующие способы перевода, как традиционные: метод ортогональных базисов; перевод числа в обобщенную позиционную систему (ОПС), так и недавно появившиеся интервальные методы перевода.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Метод ортогональных базисов'''&lt;br /&gt;
&lt;br /&gt;
Метод восстановления числа по его остаткам был найден еще в Китае две тысячи лет назад. Основой этого метода является теорема, названная [[Китайская теорема об остатках| Китайской теоремой об остатках (КТО)]].&lt;br /&gt;
&lt;br /&gt;
Эта теорема лежит в основе метода ортогональных базисов при переводе из системы остаточных классов в позиционную систему счисления.&lt;br /&gt;
&lt;br /&gt;
Смотри [[Метод ортогональных базисов|Метод ортогональных базисов]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Перевод числа из СОК в обобщенную позиционную систему (ОПС)'''&lt;br /&gt;
&lt;br /&gt;
Еще один метод определения величины числа связан с переводом числа из системы остаточных классов в ОПС. Для того, чтобы рассмотреть этот метод, выявим связь между представлением некоторого числа в этих двух системах. &lt;br /&gt;
&lt;br /&gt;
Пусть по-прежнему СОК задается основаниями &amp;lt;math&amp;gt;p_1, p_2, \ldots, p_n&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;A = ({\alpha}_1, {\alpha}_2, \ldots, {\alpha}_n)&amp;lt;/math&amp;gt; - число в этой системе. И пусть &amp;lt;math&amp;gt;p_1, p_2, \ldots, p_n&amp;lt;/math&amp;gt; являются также основаниями ОПС, тогда число &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt; можно представить в виде&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;A = a_n\cdot p_1\cdot p_2\cdot \ldots \cdot p_{n-1} + a_{n-1}\cdot p_1\cdot p_2\cdot \ldots \cdot p_{n-2} + \ldots + a_3\cdot p_1\cdot p_2 + a_2\cdot p_1 + a_1&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
где &amp;lt;math&amp;gt;0\le a_k&amp;lt;p_1\cdot p_2\cdot \ldots \cdot p_{k-1}&amp;lt;/math&amp;gt; – коэффициенты (цифры) ОПС.&lt;br /&gt;
&lt;br /&gt;
Очевидно, что диапазоны чисел, представимых в СОК и ОПС совпадают, т.е. можно говорить о наличии взаимно однозначного соответствия между множеством представлений чисел в СОК и ОПС.&lt;br /&gt;
&lt;br /&gt;
Это равенство можно переписать в следующем виде:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;A = a_1 + p_1(a_2 + p_2(a_3 + \ldots +p_{n-2}(a_{n-1} + p_{n-1} a_n) \ldots ))&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
откуда следует, что цифры ОПС могут быть получены из соотношений:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;a_1 = A - \left[ \frac{A}{p_1}\right] \cdot p_1 = A - A_1\cdot p_1&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;A_1 = \left[ \frac{A}{p_1}\right]&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;a_2 = A_1 - \left[ \frac{A_1}{p_2}\right] \cdot p_2 = A_1 - A_2\cdot p_2&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;A_2 = \left[ \frac{A_1}{p_2}\right]&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\ldots&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;a_n = A_{n-1} - \left[ \frac{A_{n-1}}{p_n}\right] \cdot p_n = A_{n-1} - A_n\cdot p_n&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;A_n = \left[ \frac{A_{n-1}}{p_n}\right]&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Причем при определении цифр &amp;lt;math&amp;gt;a_i&amp;lt;/math&amp;gt; по этим формулам все вычисления можно вести в СОК.&lt;br /&gt;
&lt;br /&gt;
Смотри [[Перевод числа из СОК в обобщенную позиционную систему|Перевод числа из СОК в обобщенную позиционную систему]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Интервальные методы перевода'''&lt;br /&gt;
&lt;br /&gt;
Достаточно эффективными методами перевода чисел из СОК в ПСС являются интервальные методы, основанные на интервальных характеристиках чисел. Одна из таких характеристик – номер интервала.&lt;br /&gt;
&lt;br /&gt;
Смотри [[Интервальные методы перевода|Интервальные методы перевода]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Расширение диапазона представления чисел ==&lt;br /&gt;
&lt;br /&gt;
Расширение системы оснований является одной из основных немодульных операций в СОК. Выполнение этой операции бывает необходимо при выполнении операции деления чисел, при вычислении позиционных характеристик, при обнаружении переполнения при выполнении сложения или умножения чисел.&lt;br /&gt;
&lt;br /&gt;
Задачу расширения системы оснований можно сформулировать следующим образом: найти остаточное представление числа по новому основанию (новым основаниям), если известно представление числа по другим основаниям остатки от деления на другие числа.&lt;br /&gt;
Один из путей расширения системы оснований состоит в переводе числа в позиционную систему счисления и вычисления остатка от деления на новый модуль. Этот путь не является рациональным с точки зрения числа операций.&lt;br /&gt;
&lt;br /&gt;
Другой метод расширения системы оснований позволяет определить цифру числа по новому основанию, базируясь на таких позиционных характеристиках числа, как ранг числа, след числа. &lt;br /&gt;
&lt;br /&gt;
Смотри [[Расширение диапазона представления чисел|Расширение диапазона представления чисел]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Литература =&lt;/div&gt;</summary>
		<author><name>Isaeva</name></author>	</entry>

	<entry>
		<id>https://vscripts.ru/w/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BC%D1%83%D0%BB%D1%8C%D1%82%D0%B8%D0%BF%D0%BB%D0%B8%D0%BA%D0%B0%D1%82%D0%B8%D0%B2%D0%BD%D1%8B%D1%85_%D0%BE%D0%B1%D1%80%D0%B0%D1%82%D0%BD%D1%8B%D1%85_%D1%8D%D0%BB%D0%B5%D0%BC%D0%B5%D0%BD%D1%82%D0%BE%D0%B2_%D0%BF%D0%BE_%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%BD%D0%BE%D0%BC%D1%83_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8E</id>
		<title>Вычисление мультипликативных обратных элементов по заданному модулю</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BC%D1%83%D0%BB%D1%8C%D1%82%D0%B8%D0%BF%D0%BB%D0%B8%D0%BA%D0%B0%D1%82%D0%B8%D0%B2%D0%BD%D1%8B%D1%85_%D0%BE%D0%B1%D1%80%D0%B0%D1%82%D0%BD%D1%8B%D1%85_%D1%8D%D0%BB%D0%B5%D0%BC%D0%B5%D0%BD%D1%82%D0%BE%D0%B2_%D0%BF%D0%BE_%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%BD%D0%BE%D0%BC%D1%83_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8E"/>
				<updated>2015-01-23T12:56:52Z</updated>
		
		<summary type="html">&lt;p&gt;Isaeva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Рассмотрим вопрос о мультипликативных обратных элементов по заданному модулю в фактор-кольце &amp;lt;math&amp;gt;Z_p&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Рассмотрим два способа вычисления обратных мультипликативных элементов. Первый способ основан на рассмотренном выше алгоритме Евклида, второй – на теореме Эйлера.&lt;br /&gt;
&lt;br /&gt;
'''Первый способ'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Второй способ'''&lt;br /&gt;
&lt;br /&gt;
Напомним теорему Эйлера.&lt;br /&gt;
&lt;br /&gt;
'''Определение'''&lt;br /&gt;
&lt;br /&gt;
Функция Эйлера &amp;lt;math&amp;gt;\varphi (n)&amp;lt;/math&amp;gt; — это количество чисел от &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; до &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt;, взаимно простых с &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Т.е. это количество таких натуральных чисел из отрезка [1; n], наибольший общий делитель (НОД) которых с &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; равен единице.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Tеоремa Эйлера'''&lt;br /&gt;
&lt;br /&gt;
Если &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; взаимно просты, то &amp;lt;math&amp;gt;a^{\varphi(p)} \equiv 1 \pmod p&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;\varphi (n)&amp;lt;/math&amp;gt; - функция Эйлера.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Доказательство теоремы достаточно простое, возможны различные варианты. Приведем здесь теоретико-числовое доказательство.&lt;br /&gt;
&lt;br /&gt;
Доказательство.&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;x_1, \dots, x_{\varphi(p)}&amp;lt;/math&amp;gt; — все различные натуральные числа, меньшие &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; и взаимно простые с ним.&lt;br /&gt;
&lt;br /&gt;
Рассмотрим все возможные произведения &amp;lt;math&amp;gt;x_i a&amp;lt;/math&amp;gt; для всех &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt; от &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; до &amp;lt;math&amp;gt;\varphi(p)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Поскольку &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; взаимно просто с &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt; взаимно просто с &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;, то и &amp;lt;math&amp;gt;x_i a&amp;lt;/math&amp;gt; также взаимно просто с &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;, то есть &amp;lt;math&amp;gt;x_i a \equiv x_j\pmod p&amp;lt;/math&amp;gt; для некоторого &amp;lt;math&amp;gt;j&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Отметим, что все остатки &amp;lt;math&amp;gt;x_i a&amp;lt;/math&amp;gt; при делении на &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; различны. Действительно, пусть это не так, то существуют такие &amp;lt;math&amp;gt;i_1 \neq i_2&amp;lt;/math&amp;gt;, что&lt;br /&gt;
: &amp;lt;math&amp;gt;x_{i_1} a \equiv x_{i_2} a\pmod p&amp;lt;/math&amp;gt;&lt;br /&gt;
или&lt;br /&gt;
: &amp;lt;math&amp;gt;(x_{i_1} - x_{i_2}) a \equiv 0\pmod p&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Так как &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; взаимно просто с &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;, то последнее равенство равносильно тому, что&lt;br /&gt;
: &amp;lt;math&amp;gt;x_{i_1} - x_{i_2} \equiv 0\pmod p&amp;lt;/math&amp;gt; или &amp;lt;math&amp;gt;x_{i_1} \equiv x_{i_2}\pmod p&amp;lt;/math&amp;gt;.&lt;br /&gt;
Это противоречит тому, что числа &amp;lt;math&amp;gt;x_1, \dots, x_{\varphi(p)}&amp;lt;/math&amp;gt; попарно различны по модулю &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Перемножим все сравнения вида &amp;lt;math&amp;gt;x_i a \equiv x_j\pmod p&amp;lt;/math&amp;gt;. Получим:&lt;br /&gt;
: &amp;lt;math&amp;gt;x_1 \cdots x_{\varphi(p)} a^{\varphi(p)} \equiv x_1 \cdots x_{\varphi(p)}\pmod p&amp;lt;/math&amp;gt;&lt;br /&gt;
или&lt;br /&gt;
: &amp;lt;math&amp;gt;x_1 \cdots x_{\varphi(p)} (a^{\varphi(p)}-1) \equiv 0\pmod p&amp;lt;/math&amp;gt;.&lt;br /&gt;
Так как число &amp;lt;math&amp;gt;x_1 \cdots x_{\varphi(p)}&amp;lt;/math&amp;gt; взаимно просто с &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;, то последнее сравнение равносильно тому, что&lt;br /&gt;
: &amp;lt;math&amp;gt;a^{\varphi(p)}-1 \equiv 0\pmod p&amp;lt;/math&amp;gt; &lt;br /&gt;
или &lt;br /&gt;
:&amp;lt;math&amp;gt;a^{\varphi(p)} \equiv 1\pmod p&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В частном случае, когда &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; простое, теорема Эйлера превращается в так называемую малую теорему Ферма:&lt;br /&gt;
&lt;br /&gt;
'''Малая теорема Ферма'''&lt;br /&gt;
&lt;br /&gt;
Если &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; - простое число и &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; - произвольное целое число, не делящееся на &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;, то &amp;lt;math&amp;gt;a^{p-1} \equiv 1 \pmod p &amp;lt;/math&amp;gt;.&lt;/div&gt;</summary>
		<author><name>Isaeva</name></author>	</entry>

	<entry>
		<id>https://vscripts.ru/w/%D0%A1%D1%80%D0%B0%D0%B2%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B8_%D0%B8%D1%85_%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D1%8B%D0%B5_%D1%81%D0%B2%D0%BE%D0%B9%D1%81%D1%82%D0%B2%D0%B0</id>
		<title>Сравнения и их основные свойства</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%A1%D1%80%D0%B0%D0%B2%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B8_%D0%B8%D1%85_%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D1%8B%D0%B5_%D1%81%D0%B2%D0%BE%D0%B9%D1%81%D1%82%D0%B2%D0%B0"/>
				<updated>2015-01-23T12:53:29Z</updated>
		
		<summary type="html">&lt;p&gt;Isaeva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Возьмём произвольное фиксированное натуральное число &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; и будем рассматривать остатки при делении на &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; различных целых чисел.&lt;br /&gt;
&lt;br /&gt;
При рассмотрении свойств этих остатков и проведении операций над ними удобно ввести понятие сравнения по модулю.&lt;br /&gt;
&lt;br /&gt;
== Определения ==&lt;br /&gt;
&lt;br /&gt;
'''Определение.''' Два целых числа &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; называются ''сравнимыми по модулю'' &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;, если их разность &amp;lt;math&amp;gt;a-b&amp;lt;/math&amp;gt; делится без остатка на &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Символически сравнимость записывается в виде формулы (''сравнения''):&lt;br /&gt;
: &amp;lt;math&amp;gt;a \equiv b \pmod{m}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Число &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; называется '''модулем''' сравнения.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Если разность &amp;lt;math&amp;gt;a-b&amp;lt;/math&amp;gt; не делится на &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;, то запишем:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;a \not \equiv b \pmod{m}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Согласно определению, &amp;lt;math&amp;gt; a \equiv 0 \pmod{m} &amp;lt;/math&amp;gt; означает, что &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; делится на &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Теорема.''' &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;  сравнимо с &amp;lt;math&amp;gt; b &amp;lt;/math&amp;gt; тогда и только тогда, когда &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt; b &amp;lt;/math&amp;gt;  имеют одинаковые остатки при делении на &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt;.&lt;br /&gt;
Поэтому в качестве определения сравнения можно взять следующую эквивалентную формулировку:&lt;br /&gt;
&lt;br /&gt;
'''Определение.''' Целые числа &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; называются ''сравнимыми по модулю'' &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;, если остатки от деления этих чисел на &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; равны.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Примеры ==&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;101 \equiv 17 \pmod{21}&amp;lt;/math&amp;gt; , т. к. 101 – 17 = 84, а 84 делится без остатка на 21.&lt;br /&gt;
: &amp;lt;math&amp;gt;135 \equiv 11 \pmod{4}&amp;lt;/math&amp;gt; , т. к. оба числа 135 и 11 при делении на 4 дают остаток 3.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Свойства ==&lt;br /&gt;
&lt;br /&gt;
Для фиксированного натурального числа &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; отношение сравнимости по модулю &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; обладает следующими свойствами:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''Рефлексивность:''' для любого целого &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; справедливо &amp;lt;math&amp;gt; a \equiv a \pmod m &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''Симметричность:''' если &amp;lt;math&amp;gt; a \equiv b \pmod m &amp;lt;/math&amp;gt;, то &amp;lt;math&amp;gt; b \equiv a \pmod m &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''Транзитивность:''' если &amp;lt;math&amp;gt; a \equiv b \pmod m &amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt; b \equiv c \pmod m &amp;lt;/math&amp;gt;, то &amp;lt;math&amp;gt; a \equiv c \pmod m &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Таким образом, отношение сравнимости по модулю &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; является отношением эквивалентности на множестве целых чисел.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:'''Другие свойства:'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Обе части сравнения можно умножить на произвольное целое число. &lt;br /&gt;
:Если &amp;lt;math&amp;gt;a \equiv b \pmod m&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; – произвольное целое число, то &amp;lt;math&amp;gt; k \cdot a \equiv k \cdot b \pmod m&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Обе части сравнения можно разделить на их общий делитель, если он взаимно прост с модулем. &lt;br /&gt;
:Если &amp;lt;math&amp;gt; k \cdot a \equiv k \cdot b \pmod m &amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt; (k, m) = 1 &amp;lt;/math&amp;gt;, то &amp;lt;math&amp;gt;a \equiv b \pmod m&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Обе части сравнения и модуль можно умножить на одно и то же целое. &lt;br /&gt;
:Если &amp;lt;math&amp;gt;a \equiv b \pmod m&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; – произвольное натуральное число, то &amp;lt;math&amp;gt; k \cdot a \equiv k \cdot b \pmod {k \cdot m}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Обе части сравнения и модуль можно разделить на любой их общий делитель. &lt;br /&gt;
:Если &amp;lt;math&amp;gt; k \cdot a \equiv k \cdot b \pmod {k \cdot m}&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; – произвольные натуральные числа, то &amp;lt;math&amp;gt;a \equiv b \pmod m&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* К любой части сравнения можно прибавить (или отнять от нее) любое число, кратное модуля. &lt;br /&gt;
:Если &amp;lt;math&amp;gt;a \equiv b \pmod m&amp;lt;/math&amp;gt; то при любом целом &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; &amp;lt;math&amp;gt;a+n\cdot m \equiv b \pmod m&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Сравнения можно почленно складывать и вычитать. &lt;br /&gt;
&lt;br /&gt;
:Если &amp;lt;math&amp;gt;a \equiv b \pmod m&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;c \equiv d \pmod m&amp;lt;/math&amp;gt;, то &amp;lt;math&amp;gt;a+c \equiv b+d \pmod m&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;a-c \equiv b-d \pmod m&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Любое слагаемое левой или правой части сравнения можно перенести с противоположным знаком в другую часть.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Сравнения можно почленно перемножать. &lt;br /&gt;
:Если &amp;lt;math&amp;gt;a \equiv b \pmod m&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;c \equiv d \pmod m&amp;lt;/math&amp;gt;, то &amp;lt;math&amp;gt;a \cdot c \equiv b \cdot d \pmod m&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Если &amp;lt;math&amp;gt;a \equiv b \pmod m&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;f(x) = c_0 + c_1 \cdot x_1 + \ldots + c_n \cdot x_n&amp;lt;/math&amp;gt; - произвольный многочлен с целыми коэффициентами, то &amp;lt;math&amp;gt;f(a) = f(b) \pmod m&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Если сравнение выполняется по модулю &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;, то оно выполняется и по модулю &amp;lt;math&amp;gt;d&amp;lt;/math&amp;gt;, равному любому делителю числа &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;. &lt;br /&gt;
:Если &amp;lt;math&amp;gt;a \equiv b \pmod m&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;d|m&amp;lt;/math&amp;gt;, то &amp;lt;math&amp;gt;a \equiv b \pmod d&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Если &amp;lt;math&amp;gt;a \equiv b \pmod m&amp;lt;/math&amp;gt;, то множество общих делителей &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; совпадает с множеством общих делителей &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;. В частности, &amp;lt;math&amp;gt;(a,m) = (b,m)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Если сравнение &amp;lt;math&amp;gt;a \equiv b&amp;lt;/math&amp;gt; имеет место по нескольким модулям, то оно имеет место и по модулю, равному наименьшему общему кратному этих модулей. &lt;br /&gt;
:Если &amp;lt;math&amp;gt;a \equiv b \pmod m_1, a \equiv b \pmod m_2, \ldots, a \equiv b \pmod m_s&amp;lt;/math&amp;gt;, то &amp;lt;math&amp;gt;a \equiv b \pmod m&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;m = [m_1, m_2, \ldots, m_s]&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Если одна часть сравнения и модуль делятся на какое-либо число, то и другая часть сравнения делится на это число.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Классы вычетов ==&lt;br /&gt;
&lt;br /&gt;
При делении целых чисел на модуль &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; в остатке получатся числа &amp;lt;math&amp;gt;0, 1, 2, 3,\ldots, {m-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Отнесём все целые числа, дающие при делении на &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; один и тот же остаток в один класс, поэтому получится &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; различных классов по модулю &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;. В один класс попадут равноостаточные числа, они называются вычетами друг друга. &lt;br /&gt;
&lt;br /&gt;
'''Определение.''' Множество всех чисел сравнимых с &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; по модулю &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; называется '''классом вычетов''' &amp;lt;math&amp;gt;a &amp;lt;/math&amp;gt; по модулю &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Обозначим через &amp;lt;math&amp;gt;A_0&amp;lt;/math&amp;gt; класс вычетов, которые при делении на &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; дают остаток &amp;lt;math&amp;gt;0&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Например, числа вида &amp;lt;math&amp;gt;mt, t \in Z&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Через &amp;lt;math&amp;gt;A_1&amp;lt;/math&amp;gt; – числа, дающие при делении остаток &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Например, числа вида &amp;lt;math&amp;gt;mt+1, t \in Z&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Через &amp;lt;math&amp;gt;A_2&amp;lt;/math&amp;gt; – числа, дающие при делении остаток &amp;lt;math&amp;gt;2&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Например, числа вида &amp;lt;math&amp;gt;mt+2, t \in Z&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Через &amp;lt;math&amp;gt;A_{m-1}&amp;lt;/math&amp;gt; – числа, дающие при делении остаток &amp;lt;math&amp;gt;m-1&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Например, числа вида &amp;lt;math&amp;gt;mt+(m-1), t \in Z&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Полной системой вычетов по модулю &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; называется совокупность &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; целых чисел, содержащая точно по одному представителю из каждого класса вычетов по модулю &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;. Каждый класс вычетов по модулю &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; содержит в точности одно из чисел совокупности всех возможных остатков от деления на &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;: &amp;lt;math&amp;gt;0, 1, \ldots, m-1&amp;lt;/math&amp;gt;. Множество &amp;lt;math&amp;gt;\{0, 1, \ldots, m-1\}&amp;lt;/math&amp;gt; называется полной системой наименьших неотрицательных вычетов по модулю &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;. Можно легко доказать, что любая совокупность &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; чисел &amp;lt;math&amp;gt;m&amp;gt;1&amp;lt;/math&amp;gt;, попарно несравнимых по модулю &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;, есть полная система вычетов по модулю &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Часто рассматривают полную систему наименьших неотрицательных вычетов: &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;0, 1, \ldots, m-1&amp;lt;/math&amp;gt;; &lt;br /&gt;
&lt;br /&gt;
полную систему наименьших положительных вычетов: &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;1, 2, \ldots, m&amp;lt;/math&amp;gt;; &lt;br /&gt;
&lt;br /&gt;
полную систему наименьших по абсолютной величине вычетов: &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;{-\frac{m}{2}+1}, {-\frac{m}{2}+2}, \ldots, -2, -1, 0, 1, 2, \ldots, {\frac{m}{2}}&amp;lt;/math&amp;gt; при чётном &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;-\left[{\frac{m}{2}}\right], {-\left[{\frac{m}{2}}\right]+1}, \ldots, -2, -1, 0, 1, 2, \ldots, \left[{\frac{m}{2}}\right]&amp;lt;/math&amp;gt; при нечётном &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Можно ввести в рассмотрение приведённую систему вычетов по модулю &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;, т.е. систему чисел, взятых по одному и только по одному из каждого класса, взаимно простого с модулем.&lt;br /&gt;
Число классов, взаимно простых с модулем &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;, равно значению функции Эйлера &amp;lt;math&amp;gt;\varphi(m)&amp;lt;/math&amp;gt;.&lt;/div&gt;</summary>
		<author><name>Isaeva</name></author>	</entry>

	<entry>
		<id>https://vscripts.ru/w/%D0%A1%D1%80%D0%B0%D0%B2%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B8_%D0%B8%D1%85_%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D1%8B%D0%B5_%D1%81%D0%B2%D0%BE%D0%B9%D1%81%D1%82%D0%B2%D0%B0</id>
		<title>Сравнения и их основные свойства</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%A1%D1%80%D0%B0%D0%B2%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B8_%D0%B8%D1%85_%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D1%8B%D0%B5_%D1%81%D0%B2%D0%BE%D0%B9%D1%81%D1%82%D0%B2%D0%B0"/>
				<updated>2015-01-23T12:48:21Z</updated>
		
		<summary type="html">&lt;p&gt;Isaeva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Возьмём произвольное фиксированное натуральное число &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; и будем рассматривать остатки при делении на &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; различных целых чисел.&lt;br /&gt;
&lt;br /&gt;
При рассмотрении свойств этих остатков и проведении операций над ними удобно ввести понятие сравнения по модулю.&lt;br /&gt;
&lt;br /&gt;
== Определения ==&lt;br /&gt;
&lt;br /&gt;
'''Определение.''' Два целых числа &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; называются ''сравнимыми по модулю'' &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;, если их разность &amp;lt;math&amp;gt;a-b&amp;lt;/math&amp;gt; делится без остатка на &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Символически сравнимость записывается в виде формулы (''сравнения''):&lt;br /&gt;
: &amp;lt;math&amp;gt;a \equiv b \pmod{m}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Число &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; называется '''модулем''' сравнения.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Если разность &amp;lt;math&amp;gt;a-b&amp;lt;/math&amp;gt; не делится на &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;, то запишем:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;a \not \equiv b \pmod{m}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Согласно определению, &amp;lt;math&amp;gt; a \equiv 0 \pmod{m} &amp;lt;/math&amp;gt; означает, что &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; делится на &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Теорема.''' &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;  сравнимо с &amp;lt;math&amp;gt; b &amp;lt;/math&amp;gt; тогда и только тогда, когда &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt; b &amp;lt;/math&amp;gt;  имеют одинаковые остатки при делении на &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt;.&lt;br /&gt;
Поэтому в качестве определения сравнения можно взять следующую эквивалентную формулировку:&lt;br /&gt;
&lt;br /&gt;
'''Определение.''' Целые числа &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; называются ''сравнимыми по модулю'' &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;, если остатки от деления этих чисел на &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; равны.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Примеры ==&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;101 \equiv 17 \pmod{21}&amp;lt;/math&amp;gt; , т. к. 101 – 17 = 84, а 84 делится без остатка на 21.&lt;br /&gt;
: &amp;lt;math&amp;gt;135 \equiv 11 \pmod{4}&amp;lt;/math&amp;gt; , т. к. оба числа 135 и 11 при делении на 4 дают остаток 3.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Свойства ==&lt;br /&gt;
&lt;br /&gt;
Для фиксированного натурального числа &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; отношение сравнимости по модулю &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; обладает следующими свойствами:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''Рефлексивность:''' для любого целого &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; справедливо &amp;lt;math&amp;gt; a \equiv a \pmod m &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''Симметричность:''' если &amp;lt;math&amp;gt; a \equiv b \pmod m &amp;lt;/math&amp;gt;, то &amp;lt;math&amp;gt; b \equiv a \pmod m &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''Транзитивность:''' если &amp;lt;math&amp;gt; a \equiv b \pmod m &amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt; b \equiv c \pmod m &amp;lt;/math&amp;gt;, то &amp;lt;math&amp;gt; a \equiv c \pmod m &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Таким образом, отношение сравнимости по модулю &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; является отношением эквивалентности на множестве целых чисел.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:'''Другие свойства:'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Обе части сравнения можно умножить на произвольное целое число. &lt;br /&gt;
:Если &amp;lt;math&amp;gt;a \equiv b \pmod m&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; – произвольное целое число, то &amp;lt;math&amp;gt; k \cdot a \equiv k \cdot b \pmod m&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Обе части сравнения можно разделить на их общий делитель, если он взаимно прост с модулем. &lt;br /&gt;
:Если &amp;lt;math&amp;gt; k \cdot a \equiv k \cdot b \pmod m &amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt; (k, m) = 1 &amp;lt;/math&amp;gt;, то &amp;lt;math&amp;gt;a \equiv b \pmod m&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Обе части сравнения и модуль можно умножить на одно и то же целое. &lt;br /&gt;
:Если &amp;lt;math&amp;gt;a \equiv b \pmod m&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; – произвольное натуральное число, то &amp;lt;math&amp;gt; k \cdot a \equiv k \cdot b \pmod {k \cdot m}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Обе части сравнения и модуль можно разделить на любой их общий делитель. &lt;br /&gt;
:Если &amp;lt;math&amp;gt; k \cdot a \equiv k \cdot b \pmod {k \cdot m}&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; – произвольные натуральные числа, то &amp;lt;math&amp;gt;a \equiv b \pmod m&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* К любой части сравнения можно прибавить (или отнять от нее) любое число, кратное модуля. &lt;br /&gt;
:Если &amp;lt;math&amp;gt;a \equiv b \pmod m&amp;lt;/math&amp;gt; то при любом целом &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; &amp;lt;math&amp;gt;a+n\cdot m \equiv b \pmod m&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Сравнения можно почленно складывать и вычитать. &lt;br /&gt;
&lt;br /&gt;
:Если &amp;lt;math&amp;gt;a \equiv b \pmod m&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;c \equiv d \pmod m&amp;lt;/math&amp;gt;, то &amp;lt;math&amp;gt;a+c \equiv b+d \pmod m&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;a-c \equiv b-d \pmod m&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Любое слагаемое левой или правой части сравнения можно перенести с противоположным знаком в другую часть.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Сравнения можно почленно перемножать. &lt;br /&gt;
:Если &amp;lt;math&amp;gt;a \equiv b \pmod m&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;c \equiv d \pmod m&amp;lt;/math&amp;gt;, то &amp;lt;math&amp;gt;a \cdot c \equiv b \cdot d \pmod m&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Если &amp;lt;math&amp;gt;a \equiv b \pmod m&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;f(x) = c_0 + c_1 \cdot x_1 + \ldots + c_n \cdot x_n&amp;lt;/math&amp;gt; - произвольный многочлен с целыми коэффициентами, то &amp;lt;math&amp;gt;f(a) = f(b) \pmod m&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Если сравнение выполняется по модулю &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;, то оно выполняется и по модулю &amp;lt;math&amp;gt;d&amp;lt;/math&amp;gt;, равному любому делителю числа &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;. &lt;br /&gt;
:Если &amp;lt;math&amp;gt;a \equiv b \pmod m&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;d|m&amp;lt;/math&amp;gt;, то &amp;lt;math&amp;gt;a \equiv b \pmod d&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Если &amp;lt;math&amp;gt;a \equiv b \pmod m&amp;lt;/math&amp;gt;, то множество общих делителей &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; совпадает с множеством общих делителей &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;. В частности, &amp;lt;math&amp;gt;(a,m) = (b,m)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Если сравнение &amp;lt;math&amp;gt;a \equiv b&amp;lt;/math&amp;gt; имеет место по нескольким модулям, то оно имеет место и по модулю, равному наименьшему общему кратному этих модулей. &lt;br /&gt;
:Если &amp;lt;math&amp;gt;a \equiv b \pmod m_1, a \equiv b \pmod m_2, \ldots, a \equiv b \pmod m_s&amp;lt;/math&amp;gt;, то &amp;lt;math&amp;gt;a \equiv b \pmod m&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;m = [m_1, m_2, \ldots, m_s]&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Если одна часть сравнения и модуль делятся на какое-либо число, то и другая часть сравнения делится на это число.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Классы вычетов ==&lt;br /&gt;
&lt;br /&gt;
При делении целых чисел на модуль &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; в остатке получатся числа &amp;lt;math&amp;gt;0, 1, 2, 3,\ldots, {m-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Отнесём все целые числа, дающие при делении на &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; один и тот же остаток в один класс, поэтому получится &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; различных классов по модулю &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;. В один класс попадут равноостаточные числа, они называются вычетами друг друга. &lt;br /&gt;
&lt;br /&gt;
'''Определение.''' Множество всех чисел сравнимых с &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; по модулю &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; называется '''классом вычетов''' &amp;lt;math&amp;gt;a &amp;lt;/math&amp;gt; по модулю &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Обозначим через &amp;lt;math&amp;gt;A_0&amp;lt;/math&amp;gt; класс вычетов, которые при делении на &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; дают остаток &amp;lt;math&amp;gt;0&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Например, числа вида &amp;lt;math&amp;gt;mt, t \in Z&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Через &amp;lt;math&amp;gt;A_1&amp;lt;/math&amp;gt; – числа, дающие при делении остаток &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Например, числа вида &amp;lt;math&amp;gt;mt+1, t \in Z&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Через &amp;lt;math&amp;gt;A_2&amp;lt;/math&amp;gt; – числа, дающие при делении остаток &amp;lt;math&amp;gt;2&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Например, числа вида &amp;lt;math&amp;gt;mt+2, t \in Z&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Через &amp;lt;math&amp;gt;A_{m-1}&amp;lt;/math&amp;gt; – числа, дающие при делении остаток &amp;lt;math&amp;gt;m-1&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Например, числа вида &amp;lt;math&amp;gt;mt+(m-1), t \in Z&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Полной системой вычетов по модулю &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; называется совокупность &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; целых чисел, содержащая точно по одному представителю из каждого класса вычетов по модулю &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;. Каждый класс вычетов по модулю &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; содержит в точности одно из чисел совокупности всех возможных остатков от деления на &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;: &amp;lt;math&amp;gt;0, 1, \ldots, m-1&amp;lt;/math&amp;gt;. Множество &amp;lt;math&amp;gt;\{0, 1, \ldots, m-1\}&amp;lt;/math&amp;gt; называется полной системой наименьших неотрицательных вычетов по модулю &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;. Можно легко доказать, что любая совокупность &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; чисел &amp;lt;math&amp;gt;m&amp;gt;1&amp;lt;/math&amp;gt;, попарно несравнимых по модулю &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;, есть полная система вычетов по модулю &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Часто рассматривают полную систему наименьших неотрицательных вычетов: &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;0, 1, \ldots, m-1&amp;lt;/math&amp;gt;; &lt;br /&gt;
&lt;br /&gt;
полную систему наименьших положительных вычетов: &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;1, 2, \ldots, m&amp;lt;/math&amp;gt;; &lt;br /&gt;
&lt;br /&gt;
полную систему наименьших по абсолютной величине вычетов: &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;{-\frac{m}{2}+1}, {-\frac{m}{2}+2}, \ldots, -2, -1, 0, 1, 2, \ldots, {\frac{m}{2}}&amp;lt;/math&amp;gt; при чётном &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;-\left[{\frac{m}{2}}\right], {-\left[{\frac{m}{2}}\right]+1}, \ldots, -2, -1, 0, 1, 2, \ldots, \left[{\frac{m}{2}}\right]&amp;lt;/math&amp;gt; при нечётном &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;.&lt;/div&gt;</summary>
		<author><name>Isaeva</name></author>	</entry>

	<entry>
		<id>https://vscripts.ru/w/%D0%A1%D1%80%D0%B0%D0%B2%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B8_%D0%B8%D1%85_%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D1%8B%D0%B5_%D1%81%D0%B2%D0%BE%D0%B9%D1%81%D1%82%D0%B2%D0%B0</id>
		<title>Сравнения и их основные свойства</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%A1%D1%80%D0%B0%D0%B2%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B8_%D0%B8%D1%85_%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D1%8B%D0%B5_%D1%81%D0%B2%D0%BE%D0%B9%D1%81%D1%82%D0%B2%D0%B0"/>
				<updated>2015-01-23T11:56:25Z</updated>
		
		<summary type="html">&lt;p&gt;Isaeva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Возьмём произвольное фиксированное натуральное число &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; и будем рассматривать остатки при делении на &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; различных целых чисел.&lt;br /&gt;
&lt;br /&gt;
При рассмотрении свойств этих остатков и проведении операций над ними удобно ввести понятие сравнения по модулю.&lt;br /&gt;
&lt;br /&gt;
== Определения ==&lt;br /&gt;
&lt;br /&gt;
'''Определение.''' Два целых числа &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; называются ''сравнимыми по модулю'' &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;, если их разность &amp;lt;math&amp;gt;a-b&amp;lt;/math&amp;gt; делится без остатка на &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Символически сравнимость записывается в виде формулы (''сравнения''):&lt;br /&gt;
: &amp;lt;math&amp;gt;a \equiv b \pmod{m}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Число &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; называется '''модулем''' сравнения.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Если разность &amp;lt;math&amp;gt;a-b&amp;lt;/math&amp;gt; не делится на &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;, то запишем:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;a \not \equiv b \pmod{m}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Согласно определению, &amp;lt;math&amp;gt; a \equiv 0 \pmod{m} &amp;lt;/math&amp;gt; означает, что &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; делится на &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Теорема.''' &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;  сравнимо с &amp;lt;math&amp;gt; b &amp;lt;/math&amp;gt; тогда и только тогда, когда &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt; b &amp;lt;/math&amp;gt;  имеют одинаковые остатки при делении на &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt;.&lt;br /&gt;
Поэтому в качестве определения сравнения можно взять следующую эквивалентную формулировку:&lt;br /&gt;
&lt;br /&gt;
'''Определение.''' Целые числа &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; называются ''сравнимыми по модулю'' &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;, если остатки от деления этих чисел на &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; равны.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Примеры ==&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;101 \equiv 17 \pmod{21}&amp;lt;/math&amp;gt; , т. к. 101 – 17 = 84, а 84 делится без остатка на 21.&lt;br /&gt;
: &amp;lt;math&amp;gt;135 \equiv 11 \pmod{4}&amp;lt;/math&amp;gt; , т. к. оба числа 135 и 11 при делении на 4 дают остаток 3.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Свойства ==&lt;br /&gt;
&lt;br /&gt;
Для фиксированного натурального числа &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; отношение сравнимости по модулю &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; обладает следующими свойствами:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''Рефлексивность:''' для любого целого &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; справедливо &amp;lt;math&amp;gt; a \equiv a \pmod m &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''Симметричность:''' если &amp;lt;math&amp;gt; a \equiv b \pmod m &amp;lt;/math&amp;gt;, то &amp;lt;math&amp;gt; b \equiv a \pmod m &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''Транзитивность:''' если &amp;lt;math&amp;gt; a \equiv b \pmod m &amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt; b \equiv c \pmod m &amp;lt;/math&amp;gt;, то &amp;lt;math&amp;gt; a \equiv c \pmod m &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Таким образом, отношение сравнимости по модулю &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; является отношением эквивалентности на множестве целых чисел.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:'''Другие свойства:'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Обе части сравнения можно умножить на произвольное целое число. &lt;br /&gt;
:Если &amp;lt;math&amp;gt;a \equiv b \pmod m&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; – произвольное целое число, то &amp;lt;math&amp;gt; k \cdot a \equiv k \cdot b \pmod m&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Обе части сравнения можно разделить на их общий делитель, если он взаимно прост с модулем. &lt;br /&gt;
:Если &amp;lt;math&amp;gt; k \cdot a \equiv k \cdot b \pmod m &amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt; (k, m) = 1 &amp;lt;/math&amp;gt;, то &amp;lt;math&amp;gt;a \equiv b \pmod m&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Обе части сравнения и модуль можно умножить на одно и то же целое. &lt;br /&gt;
:Если &amp;lt;math&amp;gt;a \equiv b \pmod m&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; – произвольное натуральное число, то &amp;lt;math&amp;gt; k \cdot a \equiv k \cdot b \pmod {k \cdot m}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Обе части сравнения и модуль можно разделить на любой их общий делитель. &lt;br /&gt;
:Если &amp;lt;math&amp;gt; k \cdot a \equiv k \cdot b \pmod {k \cdot m}&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; – произвольные натуральные числа, то &amp;lt;math&amp;gt;a \equiv b \pmod m&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* К любой части сравнения можно прибавить (или отнять от нее) любое число, кратное модуля. &lt;br /&gt;
:Если &amp;lt;math&amp;gt;a \equiv b \pmod m&amp;lt;/math&amp;gt; то при любом целом &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; &amp;lt;math&amp;gt;a+n\cdot m \equiv b \pmod m&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Сравнения можно почленно складывать и вычитать. &lt;br /&gt;
&lt;br /&gt;
:Если &amp;lt;math&amp;gt;a \equiv b \pmod m&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;c \equiv d \pmod m&amp;lt;/math&amp;gt;, то &amp;lt;math&amp;gt;a+c \equiv b+d \pmod m&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;a-c \equiv b-d \pmod m&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Любое слагаемое левой или правой части сравнения можно перенести с противоположным знаком в другую часть.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Сравнения можно почленно перемножать. &lt;br /&gt;
:Если &amp;lt;math&amp;gt;a \equiv b \pmod m&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;c \equiv d \pmod m&amp;lt;/math&amp;gt;, то &amp;lt;math&amp;gt;a \cdot c \equiv b \cdot d \pmod m&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Если &amp;lt;math&amp;gt;a \equiv b \pmod m&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;f(x) = c_0 + c_1 \cdot x_1 + \ldots + c_n \cdot x_n&amp;lt;/math&amp;gt; - произвольный многочлен с целыми коэффициентами, то &amp;lt;math&amp;gt;f(a) = f(b) \pmod m&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Если сравнение выполняется по модулю &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;, то оно выполняется и по модулю &amp;lt;math&amp;gt;d&amp;lt;/math&amp;gt;, равному любому делителю числа &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;. &lt;br /&gt;
:Если &amp;lt;math&amp;gt;a \equiv b \pmod m&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;d|m&amp;lt;/math&amp;gt;, то &amp;lt;math&amp;gt;a \equiv b \pmod d&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Если &amp;lt;math&amp;gt;a \equiv b \pmod m&amp;lt;/math&amp;gt;, то множество общих делителей &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; совпадает с множеством общих делителей &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;. В частности, &amp;lt;math&amp;gt;(a,m) = (b,m)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Если сравнение &amp;lt;math&amp;gt;a \equiv b&amp;lt;/math&amp;gt; имеет место по нескольким модулям, то оно имеет место и по модулю, равному наименьшему общему кратному этих модулей. &lt;br /&gt;
:Если &amp;lt;math&amp;gt;a \equiv b \pmod m_1, a \equiv b \pmod m_2, \ldots, a \equiv b \pmod m_s&amp;lt;/math&amp;gt;, то &amp;lt;math&amp;gt;a \equiv b \pmod m&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;m = [m_1, m_2, \ldots, m_s]&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Классы вычетов ==&lt;br /&gt;
&lt;br /&gt;
Отнесём все целые числа, дающие при делении на &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt;  один и тот же остаток в один класс, поэтому получится &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; различных классов по модулю &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Множество всех чисел сравнимых с &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; по модулю &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; называется '''классом вычетов''' &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; по модулю &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt;.&lt;/div&gt;</summary>
		<author><name>Isaeva</name></author>	</entry>

	<entry>
		<id>https://vscripts.ru/w/%D0%A1%D1%80%D0%B0%D0%B2%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B8_%D0%B8%D1%85_%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D1%8B%D0%B5_%D1%81%D0%B2%D0%BE%D0%B9%D1%81%D1%82%D0%B2%D0%B0</id>
		<title>Сравнения и их основные свойства</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%A1%D1%80%D0%B0%D0%B2%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B8_%D0%B8%D1%85_%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D1%8B%D0%B5_%D1%81%D0%B2%D0%BE%D0%B9%D1%81%D1%82%D0%B2%D0%B0"/>
				<updated>2015-01-23T10:19:54Z</updated>
		
		<summary type="html">&lt;p&gt;Isaeva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Возьмём произвольное фиксированное натуральное число &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; и будем рассматривать остатки при делении на &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; различных целых чисел.&lt;br /&gt;
&lt;br /&gt;
При рассмотрении свойств этих остатков и проведении операций над ними удобно ввести понятие сравнения по модулю.&lt;br /&gt;
&lt;br /&gt;
== Определения ==&lt;br /&gt;
&lt;br /&gt;
'''Определение.''' Два целых числа &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; называются ''сравнимыми по модулю'' &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;, если их разность &amp;lt;math&amp;gt;a-b&amp;lt;/math&amp;gt; делится без остатка на &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Символически сравнимость записывается в виде формулы (''сравнения''):&lt;br /&gt;
: &amp;lt;math&amp;gt;a \equiv b \pmod{m}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Число &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; называется '''модулем''' сравнения.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Если разность &amp;lt;math&amp;gt;a-b&amp;lt;/math&amp;gt; не делится на &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;, то запишем:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;a \not \equiv b \pmod{m}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Согласно определению, &amp;lt;math&amp;gt; a \equiv 0 \pmod{m} &amp;lt;/math&amp;gt; означает, что &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; делится на &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Теорема.''' &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;  сравнимо с &amp;lt;math&amp;gt; b &amp;lt;/math&amp;gt; тогда и только тогда, когда &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt; b &amp;lt;/math&amp;gt;  имеют одинаковые остатки при делении на &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt;.&lt;br /&gt;
Поэтому в качестве определения сравнения можно взять следующую эквивалентную формулировку:&lt;br /&gt;
&lt;br /&gt;
'''Определение.''' Целые числа &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; называются ''сравнимыми по модулю'' &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;, если остатки от деления этих чисел на &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; равны.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Примеры ==&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;101 \equiv 17 \pmod{21}&amp;lt;/math&amp;gt; , т. к. 101 – 17 = 84, а 84 делится без остатка на 21.&lt;br /&gt;
: &amp;lt;math&amp;gt;135 \equiv 11 \pmod{4}&amp;lt;/math&amp;gt; , т. к. оба числа 135 и 11 при делении на 4 дают остаток 3.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Свойства ==&lt;br /&gt;
&lt;br /&gt;
Для фиксированного натурального числа &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; отношение сравнимости по модулю &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; обладает следующими свойствами:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''Рефлексивность:''' для любого целого &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; справедливо &amp;lt;math&amp;gt; a \equiv a \pmod m &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''Симметричность:''' если &amp;lt;math&amp;gt; a \equiv b \pmod m &amp;lt;/math&amp;gt;, то &amp;lt;math&amp;gt; b \equiv a \pmod m &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''Транзитивность:''' если &amp;lt;math&amp;gt; a \equiv b \pmod m &amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt; b \equiv c \pmod m &amp;lt;/math&amp;gt;, то &amp;lt;math&amp;gt; a \equiv c \pmod m &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Таким образом, отношение сравнимости по модулю &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; является отношением эквивалентности на множестве целых чисел.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Другие свойства:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Обе части сравнения можно умножить на произвольное целое число. Если &amp;lt;math&amp;gt;a \equiv b \pmod m&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; – произвольное целое число, то &amp;lt;math&amp;gt; k \cdot a \equiv k \cdot b \pmod m&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Обе части сравнения можно разделить на их общий делитель, если он взаимно прост с модулем. Если &amp;lt;math&amp;gt; k \cdot a \equiv k \cdot b \pmod m &amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt; (k, m) = 1 &amp;lt;/math&amp;gt;, то &amp;lt;math&amp;gt;a \equiv b \pmod m&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* Обе части сравнения и модуль можно умножить на одно и то же целое. Если &amp;lt;math&amp;gt;a \equiv b \pmod m&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; – произвольное натуральное число, то &amp;lt;math&amp;gt; k \cdot a \equiv k \cdot b \pmod {k \cdot m}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Обе части сравнения и модуль можно разделить на любой их общий делитель. Если &amp;lt;math&amp;gt; k \cdot a \equiv k \cdot b \pmod {k \cdot m}&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; – произвольные натуральные числа, то &amp;lt;math&amp;gt;a \equiv b \pmod m&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* К любой части сравнения можно прибавить (или отнять от нее) любое число, кратное модуля. Если &amp;lt;math&amp;gt;a \equiv b \pmod m&amp;lt;/math&amp;gt; то при любом целом &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; &amp;lt;math&amp;gt;a+n\cdot m \equiv b \pmod m&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Сравнения можно почленно складывать и вычитать. Если &amp;lt;math&amp;gt;a \equiv b \pmod m&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;c \equiv d \pmod m&amp;lt;/math&amp;gt;, то &amp;lt;math&amp;gt;a+c \equiv b+d \pmod m&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;a-c \equiv b-d \pmod m&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Любое слагаемое левой или правой части сравнения можно перенести с противоположным знаком в другую часть.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Сравнения можно почленно перемножать. Если &amp;lt;math&amp;gt;a \equiv b \pmod m&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;c \equiv d \pmod m&amp;lt;/math&amp;gt;, то &amp;lt;math&amp;gt;a \cdot c \equiv b \cdot d \pmod m&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Если &amp;lt;math&amp;gt;a \equiv b \pmod m&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;f(x) = c_0 + c_1 \cdot x_1 + \ldots + c_n \cdot x_n&amp;lt;/math&amp;gt; - произвольный многочлен с целыми коэффициентами, то &amp;lt;math&amp;gt;f(a) = f(b) \pmod m&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Если сравнение выполняется по модулю &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;, то оно выполняется и по модулю &amp;lt;math&amp;gt;d&amp;lt;/math&amp;gt;, равному любому делителю числа &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;. Если &amp;lt;math&amp;gt;a \equiv b \pmod m&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;m/d&amp;lt;/math&amp;gt;, то &amp;lt;math&amp;gt;a \equiv b \pmod d&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Если &amp;lt;math&amp;gt;a \equiv b \pmod m&amp;lt;/math&amp;gt;, то множество общих делителей &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; совпадает с множеством общих делителей &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;. В частности, &amp;lt;math&amp;gt;(a,m) = (b,m)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Если &amp;lt;math&amp;gt;a \equiv b \pmod m_1, a \equiv b \pmod m_2, \ldots, a \equiv b \pmod m_s&amp;lt;/math&amp;gt;, то &amp;lt;math&amp;gt;a \equiv b \pmod m&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;m = [m_1, m_2, \ldots, m_s]&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Классы вычетов ==&lt;br /&gt;
&lt;br /&gt;
Отнесём все целые числа, дающие при делении на &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt;  один и тот же остаток в один класс, поэтому получится &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; различных классов по модулю &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Множество всех чисел сравнимых с &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; по модулю &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; называется '''классом вычетов''' &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; по модулю &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt;.&lt;/div&gt;</summary>
		<author><name>Isaeva</name></author>	</entry>

	<entry>
		<id>https://vscripts.ru/w/%D0%A1%D1%80%D0%B0%D0%B2%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B8_%D0%B8%D1%85_%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D1%8B%D0%B5_%D1%81%D0%B2%D0%BE%D0%B9%D1%81%D1%82%D0%B2%D0%B0</id>
		<title>Сравнения и их основные свойства</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%A1%D1%80%D0%B0%D0%B2%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B8_%D0%B8%D1%85_%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D1%8B%D0%B5_%D1%81%D0%B2%D0%BE%D0%B9%D1%81%D1%82%D0%B2%D0%B0"/>
				<updated>2015-01-23T09:44:52Z</updated>
		
		<summary type="html">&lt;p&gt;Isaeva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Возьмём произвольное фиксированное натуральное число &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; и будем рассматривать остатки при делении на &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; различных целых чисел.&lt;br /&gt;
&lt;br /&gt;
При рассмотрении свойств этих остатков и проведении операций над ними удобно ввести понятие сравнения по модулю.&lt;br /&gt;
&lt;br /&gt;
== Определения ==&lt;br /&gt;
&lt;br /&gt;
'''Определение.''' Два целых числа &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; называются ''сравнимыми по модулю'' &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;, если их разность &amp;lt;math&amp;gt;a-b&amp;lt;/math&amp;gt; делится без остатка на &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Символически сравнимость записывается в виде формулы (''сравнения''):&lt;br /&gt;
: &amp;lt;math&amp;gt;a \equiv b \pmod{m}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Число &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; называется '''модулем''' сравнения.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Если разность &amp;lt;math&amp;gt;a-b&amp;lt;/math&amp;gt; не делится на &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;, то запишем:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;a \not \equiv b \pmod{m}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Согласно определению, &amp;lt;math&amp;gt; a \equiv 0 \pmod{m} &amp;lt;/math&amp;gt; означает, что &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; делится на &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Теорема.''' &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;  сравнимо с &amp;lt;math&amp;gt; b &amp;lt;/math&amp;gt; тогда и только тогда, когда &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt; b &amp;lt;/math&amp;gt;  имеют одинаковые остатки при делении на &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt;.&lt;br /&gt;
Поэтому в качестве определения сравнения можно взять следующую эквивалентную формулировку:&lt;br /&gt;
&lt;br /&gt;
'''Определение.''' Целые числа &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; называются ''сравнимыми по модулю'' &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;, если остатки от деления этих чисел на &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; равны.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Примеры ==&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;101 \equiv 17 \pmod{21}&amp;lt;/math&amp;gt; , т. к. 101 – 17 = 84, а 84 делится без остатка на 21.&lt;br /&gt;
: &amp;lt;math&amp;gt;135 \equiv 11 \pmod{4}&amp;lt;/math&amp;gt; , т. к. оба числа 135 и 11 при делении на 4 дают остаток 3.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Свойства ==&lt;br /&gt;
&lt;br /&gt;
Для фиксированного натурального числа &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; отношение сравнимости по модулю &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; обладает следующими свойствами:&lt;br /&gt;
&lt;br /&gt;
* '''Рефлексивность:''' для любого целого &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; справедливо &amp;lt;math&amp;gt; a \equiv a \pmod m &amp;lt;/math&amp;gt;.&lt;br /&gt;
* '''Симметричность:''' если &amp;lt;math&amp;gt; a \equiv b \pmod m &amp;lt;/math&amp;gt;, то &amp;lt;math&amp;gt; b \equiv a \pmod m &amp;lt;/math&amp;gt;.&lt;br /&gt;
* '''Транзитивность:''' если &amp;lt;math&amp;gt; a \equiv b \pmod m &amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt; b \equiv c \pmod m &amp;lt;/math&amp;gt;, то &amp;lt;math&amp;gt; a \equiv c \pmod m &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Таким образом, отношение сравнимости по модулю &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; является отношением эквивалентности на множестве целых чисел.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Другие свойства:&lt;br /&gt;
&lt;br /&gt;
* Если &amp;lt;math&amp;gt;a \equiv b \pmod m&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; – произвольное целое число, то &amp;lt;math&amp;gt; k \cdot a \equiv k \cdot b \pmod m&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* Если &amp;lt;math&amp;gt; k \cdot a \equiv k \cdot b \pmod m &amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt; (k, m) = 1 &amp;lt;/math&amp;gt;, то &amp;lt;math&amp;gt;a \equiv b \pmod m&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* Если &amp;lt;math&amp;gt;a \equiv b \pmod m&amp;lt;/math&amp;gt; и k – произвольное натуральное число, то &amp;lt;math&amp;gt; k \cdot a \equiv k \cdot b \pmod {k \cdot m}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* Если &amp;lt;math&amp;gt; k \cdot a \equiv k \cdot b \pmod {k \cdot m}&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; – произвольные натуральные числа, то &amp;lt;math&amp;gt;a \equiv b \pmod m&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* Если &amp;lt;math&amp;gt;a \equiv b \pmod m&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;c \equiv d \pmod m&amp;lt;/math&amp;gt;, то &amp;lt;math&amp;gt;a+c \equiv b+d \pmod m&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;a-c \equiv b-d \pmod m&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* Если &amp;lt;math&amp;gt;a \equiv b \pmod m&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;c \equiv d \pmod m&amp;lt;/math&amp;gt;, то &amp;lt;math&amp;gt;a \cdot c \equiv b \cdot d \pmod m&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* Если &amp;lt;math&amp;gt;a \equiv b \pmod m&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;f(x) = c_0 + c_1 \cdot x_1 + \ldots + c_n \cdot x_n&amp;lt;/math&amp;gt; - произвольный многочлен с целыми коэффициентами, то &amp;lt;math&amp;gt;f(a) = f(b) \pmod m&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* Любое слагаемое левой или правой части сравнения можно перенести с противоположным знаком в другую часть.&lt;br /&gt;
&lt;br /&gt;
* Если &amp;lt;math&amp;gt;a \equiv b \pmod m&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;d/m&amp;lt;/math&amp;gt;, то &amp;lt;math&amp;gt;a \equiv b \pmod d&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* Если &amp;lt;math&amp;gt;a \equiv b \pmod m&amp;lt;/math&amp;gt;, то множество общих делителей &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; совпадает с множеством общих делителей &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;. В частности, &amp;lt;math&amp;gt;(a,m) = (b,m)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* Если &amp;lt;math&amp;gt;a \equiv b \pmod m_1, a \equiv b \pmod m_2, \ldots, a \equiv b \pmod m_s&amp;lt;/math&amp;gt;, то &amp;lt;math&amp;gt;a \equiv b \pmod m&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;m = [m_1, m_2, \ldots, m_s]&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Классы вычетов ==&lt;br /&gt;
&lt;br /&gt;
Отнесём все целые числа, дающие при делении на &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt;  один и тот же остаток в один класс, поэтому получится &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; различных классов по модулю &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Множество всех чисел сравнимых с &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; по модулю &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; называется '''классом вычетов''' &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; по модулю &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt;.&lt;/div&gt;</summary>
		<author><name>Isaeva</name></author>	</entry>

	<entry>
		<id>https://vscripts.ru/w/%D0%A1%D1%80%D0%B0%D0%B2%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B8_%D0%B8%D1%85_%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D1%8B%D0%B5_%D1%81%D0%B2%D0%BE%D0%B9%D1%81%D1%82%D0%B2%D0%B0</id>
		<title>Сравнения и их основные свойства</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%A1%D1%80%D0%B0%D0%B2%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B8_%D0%B8%D1%85_%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D1%8B%D0%B5_%D1%81%D0%B2%D0%BE%D0%B9%D1%81%D1%82%D0%B2%D0%B0"/>
				<updated>2015-01-23T09:18:53Z</updated>
		
		<summary type="html">&lt;p&gt;Isaeva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Возьмём произвольное фиксированное натуральное число &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; и будем рассматривать остатки при делении на &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; различных целых чисел.&lt;br /&gt;
&lt;br /&gt;
При рассмотрении свойств этих остатков и проведении операций над ними удобно ввести понятие сравнения по модулю.&lt;br /&gt;
&lt;br /&gt;
== Определения ==&lt;br /&gt;
&lt;br /&gt;
'''Определение.''' Два целых числа &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; называются ''сравнимыми по модулю'' &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;, если их разность &amp;lt;math&amp;gt;a-b&amp;lt;/math&amp;gt; делится без остатка на &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Символически сравнимость записывается в виде формулы (''сравнения''):&lt;br /&gt;
: &amp;lt;math&amp;gt;a \equiv b \pmod{m}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Число &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; называется '''модулем''' сравнения.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Если разность &amp;lt;math&amp;gt;a-b&amp;lt;/math&amp;gt; не делится на &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;, то запишем:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;a \not \equiv b \pmod{m}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Согласно определению, &amp;lt;math&amp;gt; a \equiv 0 \pmod{m} &amp;lt;/math&amp;gt; означает, что &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; делится на &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Теорема.''' &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;  сравнимо с &amp;lt;math&amp;gt; b &amp;lt;/math&amp;gt; тогда и только тогда, когда &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt; b &amp;lt;/math&amp;gt;  имеют одинаковые остатки при делении на &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt;.&lt;br /&gt;
Поэтому в качестве определения сравнения можно взять следующую эквивалентную формулировку:&lt;br /&gt;
&lt;br /&gt;
'''Определение.''' Целые числа &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; называются ''сравнимыми по модулю'' &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;, если остатки от деления этих чисел на &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; равны.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Примеры ==&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;101 \equiv 17 \pmod{21}&amp;lt;/math&amp;gt; , т. к. 101 – 17 = 84, а 84 делится без остатка на 21.&lt;br /&gt;
: &amp;lt;math&amp;gt;135 \equiv 11 \pmod{4}&amp;lt;/math&amp;gt; , т. к. оба числа 135 и 11 при делении на 4 дают остаток 3.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Свойства ==&lt;br /&gt;
&lt;br /&gt;
Для фиксированного натурального числа &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; отношение сравнимости по модулю &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; обладает следующими свойствами:&lt;br /&gt;
&lt;br /&gt;
* '''Рефлексивность:''' для любого целого &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; справедливо &amp;lt;math&amp;gt; a \equiv a \pmod m &amp;lt;/math&amp;gt;.&lt;br /&gt;
* '''Симметричность:''' если &amp;lt;math&amp;gt; a \equiv b \pmod m &amp;lt;/math&amp;gt;, то &amp;lt;math&amp;gt; b \equiv a \pmod m &amp;lt;/math&amp;gt;.&lt;br /&gt;
* '''Транзитивность:''' если &amp;lt;math&amp;gt; a \equiv b \pmod m &amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt; b \equiv c \pmod m &amp;lt;/math&amp;gt;, то &amp;lt;math&amp;gt; a \equiv c \pmod m &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Таким образом, отношение сравнимости по модулю &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; является отношением эквивалентности на множестве целых чисел.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Другие свойства:&lt;br /&gt;
&lt;br /&gt;
* Если &amp;lt;math&amp;gt;a \equiv b \pmod m&amp;lt;/math&amp;gt; и k – произвольное целое число, то &amp;lt;math&amp;gt; k \cdot a \equiv k \cdot b \pmod m&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* Если &amp;lt;math&amp;gt; k \cdot a \equiv k \cdot b \pmod m &amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt; (k, m) = 1 &amp;lt;/math&amp;gt;, то &amp;lt;math&amp;gt;a \equiv b \pmod m&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* Если &amp;lt;math&amp;gt;a \equiv b \pmod m,&amp;lt;/math&amp;gt; и k – произвольное натуральное число, то &amp;lt;math&amp;gt; k \cdot a \equiv k \cdot b \pmod {k \cdot m}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* Если &amp;lt;math&amp;gt; k \cdot a \equiv k \cdot b \pmod {k \cdot m}&amp;lt;/math&amp;gt;, где k и m – произвольные натуральные числа, то &amp;lt;math&amp;gt;a \equiv b \pmod m&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Классы вычетов ==&lt;br /&gt;
&lt;br /&gt;
Отнесём все целые числа, дающие при делении на &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt;  один и тот же остаток в один класс, поэтому получится &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; различных классов по модулю &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Множество всех чисел сравнимых с &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; по модулю &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; называется '''классом вычетов''' &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; по модулю &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt;.&lt;/div&gt;</summary>
		<author><name>Isaeva</name></author>	</entry>

	<entry>
		<id>https://vscripts.ru/w/%D0%A7%D0%B8%D1%81%D0%BB%D0%B0_%D0%9C%D0%B5%D1%80%D1%81%D0%B5%D0%BD%D0%BD%D0%B0_%D0%B8_%D0%A4%D0%B5%D1%80%D0%BC%D0%B0</id>
		<title>Числа Мерсенна и Ферма</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%A7%D0%B8%D1%81%D0%BB%D0%B0_%D0%9C%D0%B5%D1%80%D1%81%D0%B5%D0%BD%D0%BD%D0%B0_%D0%B8_%D0%A4%D0%B5%D1%80%D0%BC%D0%B0"/>
				<updated>2015-01-19T14:43:17Z</updated>
		
		<summary type="html">&lt;p&gt;Isaeva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;При рассмотрении отдельных классов простых чисел значительный интерес представляет вопрос о простых числах специального вида, таких, например, как числа Мерсенна или числа Ферма.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Определение'''&lt;br /&gt;
&lt;br /&gt;
'''Числа Мерсенна''' — числа вида &amp;lt;math&amp;gt;M_n = 2^n - 1&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; — натуральное число.&lt;br /&gt;
Названы в честь французского математика Марена Мерсенна.&lt;br /&gt;
&lt;br /&gt;
Иногда числами Мерсенна называют только числа &amp;lt;math&amp;gt;M_n&amp;lt;/math&amp;gt; с нечетными или простыми индексами ''n''. &lt;br /&gt;
&lt;br /&gt;
Множества простых чисел в этих последовательностях совпадают, а потому понятие ''простого числа Мерсенна'' не зависит от того, как именно определяются числа Мерсенна.&lt;br /&gt;
&lt;br /&gt;
При простых значениях n = p число   может оказаться простым, но может быть составным.&lt;br /&gt;
Например, при &amp;lt;math&amp;gt;p = 2, 3, 5, 7, 13, 17, 19&amp;lt;/math&amp;gt; мы получаем простые числа Мерсенна: &amp;lt;math&amp;gt;3, 7, 31, 127, 8191, 131071, 524287&amp;lt;/math&amp;gt;, а при &amp;lt;math&amp;gt;p = 11, 23, 29&amp;lt;/math&amp;gt; числа &amp;lt;math&amp;gt;2^p - 1&amp;lt;/math&amp;gt; - составные. &lt;br /&gt;
&lt;br /&gt;
'''Свойства чисел Мерсенна'''&lt;br /&gt;
&lt;br /&gt;
* Если &amp;lt;math&amp;gt;M_n&amp;lt;/math&amp;gt; является простым, то число ''n'' также простое. Обратное в общем случае неверно, наименьшим контрпримером является &amp;lt;math&amp;gt;M_{11} = 2047 = 23\cdot 89&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* Любой делитель числа &amp;lt;math&amp;gt;M_p&amp;lt;/math&amp;gt; для простого ''p'' имеет вид 2''pk''+1, где ''k'' — натуральное число (следствие малой теоремы Ферма).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Числа Мерсенна получили известность в связи с эффективным тестом простоты Люка — Лемера, благодаря которому простые числа Мерсенна давно удерживают лидерство как самые большие известные простые числа.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Определение'''&lt;br /&gt;
&lt;br /&gt;
'''Числа Ферма''' — числа вида &amp;lt;math&amp;gt;F_n=2^{2^n}+1&amp;lt;/math&amp;gt;, где ''n'' — неотрицательное целое число.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
При &amp;lt;math&amp;gt;n = 0, 1, 2, 3, 4&amp;lt;/math&amp;gt; числа Ферма простые: &amp;lt;math&amp;gt;3, 5, 17, 257, 65537&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Все числа Мерсенна и Ферма – взаимно простые.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Необходимо отметить, что значения чисел Мерсенна и Ферма быстро растут. Это не позволяет ограничиться только такими числами в качестве модулей СОК.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Операции над числами Мерсенна и Ферма'''&lt;br /&gt;
&lt;br /&gt;
1. Если в качестве модулей &amp;lt;math&amp;gt;p_j&amp;lt;/math&amp;gt; выбраны числа Мерсенна, т.е. числа вида &amp;lt;math&amp;gt;p_j = 2^{e_j} - 1&amp;lt;/math&amp;gt;, для которых значение модуля на единицу меньше очередной степени двойки, это зачастую упрощает выполнение основных арифметических операций, так как выполнять вычисления с числами в таком представлении несколько проще, чем с числами, представленными в обратном коде.&lt;br /&gt;
&lt;br /&gt;
При таком выборе модулей полезно несколько ослабить условие &amp;lt;math&amp;gt;0 \le {\alpha} &amp;lt; p_i&amp;lt;/math&amp;gt; и потребовать только чтобы &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;0 \le {\alpha}_j &amp;lt; 2^{e_j}, a_j \equiv A \pmod{{e_j}-1} &amp;lt;/math&amp;gt;. (1)&lt;br /&gt;
&lt;br /&gt;
Таким образом, значение &amp;lt;math&amp;gt;{\alpha}_j = p_j = 2^{e_j}-1&amp;lt;/math&amp;gt; принимается в качестве оптимального вместо &amp;lt;math&amp;gt;{\alpha}_j = 0&amp;lt;/math&amp;gt;, поскольку это, с одной стороны, не влияет на справедливость китайской теоремы об остатках, а с другой означает, что math&amp;gt;{\alpha}_j&amp;lt;/math&amp;gt; может быть любым math&amp;gt;{\alpha}_j&amp;lt;/math&amp;gt;- битовым двоичным числом. При таком допущении, операции сложения и вычитания по модулю &amp;lt;math&amp;gt;p_j&amp;lt;/math&amp;gt; выполняются следующим образом:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;{\alpha}_j \oplus {\beta}_j  = (({\alpha}_j + {\beta}_j) \pmod{e_j}) + \lfloor ({\alpha}_j + {\beta}_j) \ge 2^{e_j} \rfloor&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;{\alpha}_j \otimes {\beta}_j  = ({\alpha}_j \cdot {\beta}_j \pmod{e_j}) \oplus \lfloor ({\alpha}_j \cdot {\beta}_j) / 2^{e_j} \rfloor&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Здесь &amp;lt;math&amp;gt; \oplus &amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt; \otimes &amp;lt;/math&amp;gt; указывают на действия, которые с учётом условия (1) должны быть выполнены с отдельными компонентами кортежей &lt;br /&gt;
&amp;lt;math&amp;gt;{\alpha}_1, {\alpha}_2, \cdots, {\alpha}_n&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;{\beta}_1, {\beta}_2, \cdots, {\beta}_n&amp;lt;/math&amp;gt; при сложении или умножении соответственно. При вычитании можно пользоваться и соотношением:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;{\alpha}_j \ominus {\beta}_j  = (({\alpha}_j - {\beta}_j) \pmod{e_j}) - \left[ {\alpha}_j &amp;lt; {\beta}_j \right]&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Эти операции могут быть эффективно выполнены, даже если &amp;lt;math&amp;gt;2^{e_j}&amp;lt;/math&amp;gt; больше машинного слова компьютера, так как совсем просто вычислить остаток положительного числа по модулю степени 2 или разложить число по степеням 2. Для работы с модулями вида &amp;lt;math&amp;gt;2^{e_j}-1&amp;lt;/math&amp;gt; необходимо знать, при каких условиях число &amp;lt;math&amp;gt;2^{e_j}-1&amp;lt;/math&amp;gt; является взаимно простым с числом &amp;lt;math&amp;gt;2^{\beta}-1&amp;lt;/math&amp;gt;. Для этого существует простое правило:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;(2^e-1,2^{\beta}-1) = 2^{e,\beta}-1&amp;lt;/math&amp;gt;. (2)&lt;br /&gt;
&lt;br /&gt;
Формула (2) утверждает, в частности, что&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;(2^e-1,2^{\beta}-1) = 1 \Leftrightarrow (e,\beta) = 1&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Уравнение (2) следует из алгоритма Евклида и тождества&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;{(2^e-1)} \pmod {2^{\beta}-1} = 2^{e \pmod {b}} - 1&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Поэтому на компьютере с длиной слова &amp;lt;math&amp;gt;2^{32}&amp;lt;/math&amp;gt; можно выбрать&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;p_1 = 2^{32} - 1, p_2 = 2^{31} - 1, p_3 = 2^{29} - 1, p_4 = 2^{27} - 1, p_5 = 2^{25} - 1&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
что обеспечивает эффективность сложения, вычитания и умножения целых чисел в интервале вплоть до &amp;lt;math&amp;gt;p_1 \cdot p_2 \cdot p_3 \cdot p_4 \cdot p_5 &amp;gt; 2^{143}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
2. Прямое преобразование для чисел Мерсенна&lt;br /&gt;
&lt;br /&gt;
Модулярное представление &amp;lt;math&amp;gt;({\alpha}_1, {\alpha}_2, \ldots, {\alpha}_n)&amp;lt;/math&amp;gt; для заданного числа &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt; может быть получено посредством деления &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt; на &amp;lt;math&amp;gt;(p_1, p_2, \ldots, p_n)&amp;lt;/math&amp;gt; с запоминанием остатков. В случае, когда &amp;lt;math&amp;gt;A = {({\nu}_k, {\nu}_{k-1}, \ldots, {\nu}_0)}_b&amp;lt;/math&amp;gt;, возможно применение более подходящего способа, который состоит в том, чтобы, используя СОК, вычислить полином &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;(\ldots ({\nu}_k \cdot b + {\nu}_{k-1}) \cdot b + \ldots ) b + {\nu}_0)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Если основание &amp;lt;math&amp;gt;b = 2&amp;lt;/math&amp;gt; и модули &amp;lt;math&amp;gt;p_j&amp;lt;/math&amp;gt; имеют вид &amp;lt;math&amp;gt;2^{e_j}-1&amp;lt;/math&amp;gt;, оба подхода сводятся к совсем простому способу. &lt;br /&gt;
&lt;br /&gt;
Рассмотрим двоичные представления числа &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt; с блоками по &amp;lt;math&amp;gt;{e_j}&amp;lt;/math&amp;gt; бит:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;A = a_t \cdot N^t + a_{t-1} \cdot N^{t-1} + \ldots + a_1 \cdot N + a_0&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
где &amp;lt;math&amp;gt;N = 2^{e_j}&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;0 \le a_j &amp;lt; 2^{e_j}&amp;lt;/math&amp;gt; при &amp;lt;math&amp;gt;0 \le k \le t &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Тогда &amp;lt;math&amp;gt;A \equiv {(a_t + a_{t-1} + \ldots + a_1 + a_0)} \pmod {2^{e_j}-1}&amp;lt;/math&amp;gt;, поскольку &amp;lt;math&amp;gt;N \equiv 1 \pmod{2^{e_j}-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Поэтому &amp;lt;math&amp;gt;{\alpha}_j&amp;lt;/math&amp;gt; вычисляются путём сложения &amp;lt;math&amp;gt;e_j&amp;lt;/math&amp;gt;-битовых чисел &amp;lt;math&amp;gt;{a_t \oplus a_{t-1} \oplus \ldots \oplus a_1 \oplus a_0} \pmod{2^{e_j}-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
3. Обратное преобразование для чисел Мерсенна. Алгоритм Гарнера.&lt;br /&gt;
&lt;br /&gt;
Обратный переход от СОК к позиционной системе счисления несколько сложнее. Алгоритм, основанный на китайской теореме об остатках требует вычисления значение функции Эйлера для вычислении обратных мультипликативных элементов, что в общем случае требует факторизации, т.е. разложения чисел &amp;lt;math&amp;gt;p_j&amp;lt;/math&amp;gt; на простые множители. Даже это показывает, что обратное преобразование чисел из СОК в позиционную систему счисления в соответствии с этим алгоритмом требует большого числа вычислительных операций с высокой точностью. &lt;br /&gt;
Алгоритм перехода от &amp;lt;math&amp;gt;{\alpha}_1, {\alpha}_2, \cdots, {\alpha}_n&amp;lt;/math&amp;gt; к &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt;, пригодный для практического применения, основан на доказательстве китайской теоремы об остатках, предложенном в 1958 г. Х. Л. Гарнером. Оно основано на использовании &amp;lt;math&amp;gt;{C}_n^k&amp;lt;/math&amp;gt; констант &amp;lt;math&amp;gt;c_{ij} (1 \le i \le j \le k)&amp;lt;/math&amp;gt;, где &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;c_{ij} \equiv 1 \pmod{p_j}&amp;lt;/math&amp;gt;, (3)&lt;br /&gt;
&lt;br /&gt;
, т.е.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;c_{ij} = p_i^{-1} \pmod{p_j}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Алгоритм Гарнера'''&lt;br /&gt;
&lt;br /&gt;
Рассмотрим набор модулей &amp;lt;math&amp;gt;(p_1, p_2, \dots, p_n)&amp;lt;/math&amp;gt;, удовлетворяющих условию китайской теоремы об остатках. Любое число &amp;lt;math&amp;gt;0 \leqslant x &amp;lt; M = a_1\cdot a_2 \cdot\ldots\cdot a_n&amp;lt;/math&amp;gt; однозначно представимо в виде&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;x = x_1 + x_2\cdot p_1 + x_3\cdot p_1\cdot p_2 + \dots + x_n\cdot p_1\cdot p_2\cdot\ldots\cdot p_{n-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Вычислив по порядку все коэффициенты &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt; для &amp;lt;math&amp;gt;i \in \{1, 2, \dots, n\}&amp;lt;/math&amp;gt;, можно подставить их в формулу и найти искомое решение:&lt;br /&gt;
&lt;br /&gt;
Рассмотрим выражение для &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; по модулю &amp;lt;math&amp;gt;p_i&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;i\in \{2, \dots, n\}&amp;lt;/math&amp;gt;, получим:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;x_1 = r_1&amp;lt;/math&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;r_2 = (x_1 + x_2\cdot p_1) \pmod{p_2}&amp;lt;/math&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;x_2 = (r_2 - x_1)\cdot c_{12} \pmod{p_2}&amp;lt;/math&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;r_3 = (x_1 + x_2\cdot p_1 + x_3\cdot p_1\cdot p_2) \pmod{p_3}&amp;lt;/math&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;x_3 = ((r_3 - x_1)\cdot c_{13} - x_2)\cdot c_{23} \pmod{p_3}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
и так далее.&lt;br /&gt;
&lt;br /&gt;
Основное преимущество алгоритма Гарнера заключается в том, что вычисления производятся с числами, не превышающими величину модуля M.&lt;br /&gt;
&lt;br /&gt;
Константы &amp;lt;math&amp;gt;c_{ij}&amp;lt;/math&amp;gt; можно вычислить заранее с помощью расширенного алгоритма Евклида, который по заданным &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;j&amp;lt;/math&amp;gt; позволяет определить числа &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; такие, что &amp;lt;math&amp;gt;a\cdot p_i + b\cdot p_j = (p_i, p_j) = 1&amp;lt;/math&amp;gt;, и можно положить &amp;lt;math&amp;gt;c_{ij} = a&amp;lt;/math&amp;gt;. В частности, для величины, обратной к &amp;lt;math&amp;gt;2^{\alpha} - 1&amp;lt;/math&amp;gt; по модулю &amp;lt;math&amp;gt;2^{\beta} - 1&amp;lt;/math&amp;gt;, легко получить сравнительно простую формулу&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;((1+2^d+\ldots +2^{{c-1}\cdot d})\cdot ({2^{\alpha} - 1})) \pmod {(2^{\beta} - 1)} = 1&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
где &amp;lt;math&amp;gt;\alpha \pmod {\beta} = d&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;c \alpha \pmod {\beta} = 1&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Действительно, если &amp;lt;math&amp;gt;\alpha = {\beta} +k\cdot q&amp;lt;/math&amp;gt;, то &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;2^{\alpha} = 2^{\beta} \cdot (2^q)^k \equiv 2^{\beta} \cdot 1^k \pmod{2^q - 1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Поэтому при &amp;lt;math&amp;gt;2^{\alpha} \equiv 2^{\beta} \pmod{2^q - 1}&amp;lt;/math&amp;gt; имеем &amp;lt;math&amp;gt;2^{{\alpha}\pmod{q}} \equiv 2^{{\beta}\pmod{q}} \pmod{2^q - 1}&amp;lt;/math&amp;gt;; а так как эти последние величины расположены между нулём и &amp;lt;math&amp;gt;{2^q - 1}&amp;lt;/math&amp;gt;, должно выполняться  &amp;lt;math&amp;gt;{\alpha}\pmod{q} = {\beta}\pmod{q}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Тогда&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;((1+2^d+\ldots +2^{{c-1}\cdot d})\cdot ({2^{\alpha} - 1})) \equiv ((1+2^d+\ldots +2^{{c-1}\cdot d})\cdot (2^{d}-1)) = &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;= 2^{cd} - 1 \equiv 2^{c\alpha} - 1 \equiv 2^1 - 1 \equiv 1\pmod {(2^{\beta} - 1)}&amp;lt;/math&amp;gt;.&lt;/div&gt;</summary>
		<author><name>Isaeva</name></author>	</entry>

	<entry>
		<id>https://vscripts.ru/w/%D0%A7%D0%B8%D1%81%D0%BB%D0%B0_%D0%9C%D0%B5%D1%80%D1%81%D0%B5%D0%BD%D0%BD%D0%B0_%D0%B8_%D0%A4%D0%B5%D1%80%D0%BC%D0%B0</id>
		<title>Числа Мерсенна и Ферма</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%A7%D0%B8%D1%81%D0%BB%D0%B0_%D0%9C%D0%B5%D1%80%D1%81%D0%B5%D0%BD%D0%BD%D0%B0_%D0%B8_%D0%A4%D0%B5%D1%80%D0%BC%D0%B0"/>
				<updated>2015-01-19T09:37:01Z</updated>
		
		<summary type="html">&lt;p&gt;Isaeva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;При рассмотрении отдельных классов простых чисел значительный интерес представляет вопрос о простых числах специального вида, таких, например, как числа Мерсенна или числа Ферма.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Определение'''&lt;br /&gt;
&lt;br /&gt;
'''Числа Мерсенна''' — числа вида &amp;lt;math&amp;gt;M_n = 2^n - 1&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; — натуральное число.&lt;br /&gt;
Названы в честь французского математика Марена Мерсенна.&lt;br /&gt;
&lt;br /&gt;
Иногда числами Мерсенна называют только числа &amp;lt;math&amp;gt;M_n&amp;lt;/math&amp;gt; с нечетными или простыми индексами ''n''. &lt;br /&gt;
&lt;br /&gt;
Множества простых чисел в этих последовательностях совпадают, а потому понятие ''простого числа Мерсенна'' не зависит от того, как именно определяются числа Мерсенна.&lt;br /&gt;
&lt;br /&gt;
При простых значениях n = p число   может оказаться простым, но может быть составным.&lt;br /&gt;
Например, при &amp;lt;math&amp;gt;p = 2, 3, 5, 7, 13, 17, 19&amp;lt;/math&amp;gt; мы получаем простые числа Мерсенна: &amp;lt;math&amp;gt;3, 7, 31, 127, 8191, 131071, 524287&amp;lt;/math&amp;gt;, а при &amp;lt;math&amp;gt;p = 11, 23, 29&amp;lt;/math&amp;gt; числа &amp;lt;math&amp;gt;2^p - 1&amp;lt;/math&amp;gt; - составные. &lt;br /&gt;
&lt;br /&gt;
'''Свойства чисел Мерсенна'''&lt;br /&gt;
&lt;br /&gt;
* Если &amp;lt;math&amp;gt;M_n&amp;lt;/math&amp;gt; является простым, то число ''n'' также простое. Обратное в общем случае неверно, наименьшим контрпримером является &amp;lt;math&amp;gt;M_{11} = 2047 = 23\cdot 89&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* Любой делитель числа &amp;lt;math&amp;gt;M_p&amp;lt;/math&amp;gt; для простого ''p'' имеет вид 2''pk''+1, где ''k'' — натуральное число (следствие малой теоремы Ферма).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Числа Мерсенна получили известность в связи с эффективным тестом простоты Люка — Лемера, благодаря которому простые числа Мерсенна давно удерживают лидерство как самые большие известные простые числа.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Определение'''&lt;br /&gt;
&lt;br /&gt;
'''Числа Ферма''' — числа вида &amp;lt;math&amp;gt;F_n=2^{2^n}+1&amp;lt;/math&amp;gt;, где ''n'' — неотрицательное целое число.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
При &amp;lt;math&amp;gt;n = 0, 1, 2, 3, 4&amp;lt;/math&amp;gt; числа Ферма простые: &amp;lt;math&amp;gt;3, 5, 17, 257, 65537&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Все числа Мерсенна и Ферма – взаимно простые.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Необходимо отметить, что значения чисел Мерсенна и Ферма быстро растут. Это не позволяет ограничиться только такими числами в качестве модулей СОК.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Операции над числами Мерсенна и Ферма'''&lt;br /&gt;
&lt;br /&gt;
1. Если в качестве модулей &amp;lt;math&amp;gt;p_j&amp;lt;/math&amp;gt; выбраны числа Мерсенна, т.е. числа вида &amp;lt;math&amp;gt;p_j = 2^{e_j} - 1&amp;lt;/math&amp;gt;, для которых значение модуля на единицу меньше очередной степени двойки, это зачастую упрощает выполнение основных арифметических операций, так как выполнять вычисления с числами в таком представлении несколько проще, чем с числами, представленными в обратном коде.&lt;br /&gt;
&lt;br /&gt;
При таком выборе модулей полезно несколько ослабить условие &amp;lt;math&amp;gt;0 \le {\alpha} &amp;lt; p_i&amp;lt;/math&amp;gt; и потребовать только чтобы &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;0 \le {\alpha}_j &amp;lt; 2^{e_j}, a_j \equiv A \pmod{{e_j}-1} &amp;lt;/math&amp;gt;. (1)&lt;br /&gt;
&lt;br /&gt;
Таким образом, значение &amp;lt;math&amp;gt;{\alpha}_j = p_j = 2^{e_j}-1&amp;lt;/math&amp;gt; принимается в качестве оптимального вместо &amp;lt;math&amp;gt;{\alpha}_j = 0&amp;lt;/math&amp;gt;, поскольку это, с одной стороны, не влияет на справедливость китайской теоремы об остатках, а с другой означает, что math&amp;gt;{\alpha}_j&amp;lt;/math&amp;gt; может быть любым math&amp;gt;{\alpha}_j&amp;lt;/math&amp;gt;- битовым двоичным числом. При таком допущении, операции сложения и вычитания по модулю &amp;lt;math&amp;gt;p_j&amp;lt;/math&amp;gt; выполняются следующим образом:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;{\alpha}_j \oplus {\beta}_j  = (({\alpha}_j + {\beta}_j) \pmod{e_j}) + \lfloor ({\alpha}_j + {\beta}_j) \ge 2^{e_j} \rfloor&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;{\alpha}_j \otimes {\beta}_j  = ({\alpha}_j \cdot {\beta}_j \pmod{e_j}) \oplus \lfloor ({\alpha}_j \cdot {\beta}_j) / 2^{e_j} \rfloor&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Здесь &amp;lt;math&amp;gt; \oplus &amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt; \otimes &amp;lt;/math&amp;gt; указывают на действия, которые с учётом условия (1) должны быть выполнены с отдельными компонентами кортежей &lt;br /&gt;
&amp;lt;math&amp;gt;{\alpha}_1, {\alpha}_2, \cdots, {\alpha}_n&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;{\beta}_1, {\beta}_2, \cdots, {\beta}_n&amp;lt;/math&amp;gt; при сложении или умножении соответственно. При вычитании можно пользоваться и соотношением:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;{\alpha}_j \ominus {\beta}_j  = (({\alpha}_j - {\beta}_j) \pmod{e_j}) - \left[ {\alpha}_j &amp;lt; {\beta}_j \right]&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Эти операции могут быть эффективно выполнены, даже если &amp;lt;math&amp;gt;2^{e_j}&amp;lt;/math&amp;gt; больше машинного слова компьютера, так как совсем просто вычислить остаток положительного числа по модулю степени 2 или разложить число по степеням 2. Для работы с модулями вида &amp;lt;math&amp;gt;2^{e_j}-1&amp;lt;/math&amp;gt; необходимо знать, при каких условиях число &amp;lt;math&amp;gt;2^{e_j}-1&amp;lt;/math&amp;gt; является взаимно простым с числом &amp;lt;math&amp;gt;2^{\beta}-1&amp;lt;/math&amp;gt;. Для этого существует простое правило:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;(2^e-1,2^{\beta}-1) = 2^{e,\beta}-1&amp;lt;/math&amp;gt;. (2)&lt;br /&gt;
&lt;br /&gt;
Формула (2) утверждает, в частности, что&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;(2^e-1,2^{\beta}-1) = 1 \Leftrightarrow (e,\beta) = 1&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Уравнение (2) следует из алгоритма Евклида и тождества&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;{(2^e-1)} \pmod {2^{\beta}-1} = 2^{e \pmod {b}} - 1&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Поэтому на компьютере с длиной слова &amp;lt;math&amp;gt;2^{32}&amp;lt;/math&amp;gt; можно выбрать&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;p_1 = 2^{32} - 1, p_2 = 2^{31} - 1, p_3 = 2^{29} - 1, p_4 = 2^{27} - 1, p_5 = 2^{25} - 1&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
что обеспечивает эффективность сложения, вычитания и умножения целых чисел в интервале вплоть до &amp;lt;math&amp;gt;p_1 \cdot p_2 \cdot p_3 \cdot p_4 \cdot p_5 &amp;gt; 2^{143}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
2. Прямое преобразование для чисел Мерсенна&lt;br /&gt;
&lt;br /&gt;
Модулярное представление &amp;lt;math&amp;gt;({\alpha}_1, {\alpha}_2, \ldots, {\alpha}_n)&amp;lt;/math&amp;gt; для заданного числа &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt; может быть получено посредством деления &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt; на &amp;lt;math&amp;gt;(p_1, p_2, \ldots, p_n)&amp;lt;/math&amp;gt; с запоминанием остатков. В случае, когда &amp;lt;math&amp;gt;A = {({\nu}_k, {\nu}_{k-1}, \ldots, {\nu}_0)}_b&amp;lt;/math&amp;gt;, возможно применение более подходящего способа, который состоит в том, чтобы, используя СОК, вычислить полином &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;(\ldots ({\nu}_k \cdot b + {\nu}_{k-1}) \cdot b + \ldots ) b + {\nu}_0)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Если основание &amp;lt;math&amp;gt;b = 2&amp;lt;/math&amp;gt; и модули &amp;lt;math&amp;gt;p_j&amp;lt;/math&amp;gt; имеют вид &amp;lt;math&amp;gt;2^{e_j}-1&amp;lt;/math&amp;gt;, оба подхода сводятся к совсем простому способу. &lt;br /&gt;
&lt;br /&gt;
Рассмотрим двоичные представления числа &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt; с блоками по &amp;lt;math&amp;gt;{e_j}&amp;lt;/math&amp;gt; бит:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;A = a_t \cdot N^t + a_{t-1} \cdot N^{t-1} + \ldots + a_1 \cdot N + a_0&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
где &amp;lt;math&amp;gt;N = 2^{e_j}&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;0 \le a_j &amp;lt; 2^{e_j}&amp;lt;/math&amp;gt; при &amp;lt;math&amp;gt;0 \le k \le t &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Тогда &amp;lt;math&amp;gt;A \equiv {(a_t + a_{t-1} + \ldots + a_1 + a_0)} \pmod {2^{e_j}-1}&amp;lt;/math&amp;gt;, поскольку &amp;lt;math&amp;gt;N \equiv 1 \pmod{2^{e_j}-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Поэтому &amp;lt;math&amp;gt;{\alpha}_j&amp;lt;/math&amp;gt; вычисляются путём сложения &amp;lt;math&amp;gt;e_j&amp;lt;/math&amp;gt;-битовых чисел &amp;lt;math&amp;gt;{a_t \oplus a_{t-1} \oplus \ldots \oplus a_1 \oplus a_0} \pmod{2^{e_j}-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
3. Обратное преобразование для чисел Мерсенна. Алгоритм Гарнера.&lt;br /&gt;
&lt;br /&gt;
Обратный переход от СОК к позиционной системе счисления несколько сложнее. Алгоритм, основанный на китайской теореме об остатках требует вычисления значение функции Эйлера для вычислении обратных мультипликативных элементов, что в общем случае требует факторизации, т.е. разложения чисел &amp;lt;math&amp;gt;p_j&amp;lt;/math&amp;gt; на простые множители. Даже это показывает, что обратное преобразование чисел из СОК в позиционную систему счисления в соответствии с этим алгоритмом требует большого числа вычислительных операций с высокой точностью. &lt;br /&gt;
Алгоритм перехода от &amp;lt;math&amp;gt;{\alpha}_1, {\alpha}_2, \cdots, {\alpha}_n&amp;lt;/math&amp;gt; к &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt;, пригодный для практического применения, основан на доказательстве китайской теоремы об остатках, предложенном в 1958 г. Х. Л. Гарнером. Оно основано на использовании &amp;lt;math&amp;gt;{C}_n^k&amp;lt;/math&amp;gt; констант &amp;lt;math&amp;gt;c_{ij} (1 \le i \le j \le k)&amp;lt;/math&amp;gt;, где &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;c_{ij} \equiv 1 \pmod{p_j}&amp;lt;/math&amp;gt;, (3)&lt;br /&gt;
&lt;br /&gt;
, т.е.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;c_{ij} = p_i^{-1} \pmod{p_j}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Алгоритм Гарнера'''&lt;br /&gt;
&lt;br /&gt;
Рассмотрим набор модулей &amp;lt;math&amp;gt;(p_1, p_2, \dots, p_n)&amp;lt;/math&amp;gt;, удовлетворяющих условию китайской теоремы об остатках. Любое число &amp;lt;math&amp;gt;0 \leqslant x &amp;lt; M = a_1\cdot a_2 \cdot\ldots\cdot a_n&amp;lt;/math&amp;gt; однозначно представимо в виде&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;x = x_1 + x_2\cdot p_1 + x_3\cdot p_1\cdot p_2 + \dots + x_n\cdot p_1\cdot p_2\cdot\ldots\cdot p_{n-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Вычислив по порядку все коэффициенты &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt; для &amp;lt;math&amp;gt;i \in \{1, 2, \dots, n\}&amp;lt;/math&amp;gt;, можно подставить их в формулу и найти искомое решение:&lt;br /&gt;
&lt;br /&gt;
Рассмотрим выражение для &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; по модулю &amp;lt;math&amp;gt;p_i&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;i\in \{2, \dots, n\}&amp;lt;/math&amp;gt;, получим:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;x_1 = r_1&amp;lt;/math&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;r_2 = (x_1 + x_2\cdot p_1) \pmod{p_2}&amp;lt;/math&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;x_2 = (r_2 - x_1)\cdot c_{12} \pmod{p_2}&amp;lt;/math&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;r_3 = (x_1 + x_2\cdot p_1 + x_3\cdot p_1\cdot p_2) \pmod{p_3}&amp;lt;/math&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;x_3 = ((r_3 - x_1)\cdot c_{13} - x_2)\cdot c_{23} \pmod{p_3}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
и так далее.&lt;br /&gt;
&lt;br /&gt;
Основное преимущество алгоритма Гарнера заключается в том, что вычисления производятся с числами, не превышающими величину модуля M.&lt;br /&gt;
&lt;br /&gt;
Константы &amp;lt;math&amp;gt;c_{ij}&amp;lt;/math&amp;gt; можно вычислить заранее с помощью расширенного алгоритма Евклида, который по заданным &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;j&amp;lt;/math&amp;gt; позволяет определить числа &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; такие, что &amp;lt;math&amp;gt;a\cdot p_i + b\cdot p_j = (p_i, p_j) = 1&amp;lt;/math&amp;gt;, и можно положить &amp;lt;math&amp;gt;c_{ij} = a&amp;lt;/math&amp;gt;. В частности, для величины, обратной к &amp;lt;math&amp;gt;2^{\alpha} - 1&amp;lt;/math&amp;gt; по модулю &amp;lt;math&amp;gt;2^{\beta} - 1&amp;lt;/math&amp;gt;, легко получить сравнительно простую формулу&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;((1+2^d+\ldots +2^{{c-1}\cdot d})\cdot ({2^{\alpha} - 1})) \pmod {(2^{\beta} - 1)} = 1&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
где &amp;lt;math&amp;gt;\alpha \pmod {\beta} = d&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;c \alpha \pmod {\beta} = 1&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Действительно, если &amp;lt;math&amp;gt;\alpha = {\beta} +k\cdot q&amp;lt;/math&amp;gt;, то &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;2^{\alpha} = 2^{\beta} \cdot (2^q)^k \equiv 2^{\beta} \cdot 1^k \pmod{2^q - 1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Поэтому при &amp;lt;math&amp;gt;2^{\alpha} \equiv 2^{\beta} \pmod{2^q - 1}&amp;lt;/math&amp;gt; имеем &amp;lt;math&amp;gt;2^{{\alpha}\pmod{q}} \equiv 2^{{\beta}\pmod{q}} \pmod{2^q - 1}&amp;lt;/math&amp;gt;; а так как эти последние величины расположены между нулём и &amp;lt;math&amp;gt;{2^q - 1}&amp;lt;/math&amp;gt;, должно выполняться  &amp;lt;math&amp;gt;{\alpha}\pmod{q} = {\beta}\pmod{q}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Тогда&lt;br /&gt;
&lt;br /&gt;
:&lt;/div&gt;</summary>
		<author><name>Isaeva</name></author>	</entry>

	<entry>
		<id>https://vscripts.ru/w/%D0%A7%D0%B8%D1%81%D0%BB%D0%B0_%D0%9C%D0%B5%D1%80%D1%81%D0%B5%D0%BD%D0%BD%D0%B0_%D0%B8_%D0%A4%D0%B5%D1%80%D0%BC%D0%B0</id>
		<title>Числа Мерсенна и Ферма</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%A7%D0%B8%D1%81%D0%BB%D0%B0_%D0%9C%D0%B5%D1%80%D1%81%D0%B5%D0%BD%D0%BD%D0%B0_%D0%B8_%D0%A4%D0%B5%D1%80%D0%BC%D0%B0"/>
				<updated>2015-01-19T09:08:44Z</updated>
		
		<summary type="html">&lt;p&gt;Isaeva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;При рассмотрении отдельных классов простых чисел значительный интерес представляет вопрос о простых числах специального вида, таких, например, как числа Мерсенна или числа Ферма.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Определение'''&lt;br /&gt;
&lt;br /&gt;
'''Числа Мерсенна''' — числа вида &amp;lt;math&amp;gt;M_n = 2^n - 1&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; — натуральное число.&lt;br /&gt;
Названы в честь французского математика Марена Мерсенна.&lt;br /&gt;
&lt;br /&gt;
Иногда числами Мерсенна называют только числа &amp;lt;math&amp;gt;M_n&amp;lt;/math&amp;gt; с нечетными или простыми индексами ''n''. &lt;br /&gt;
&lt;br /&gt;
Множества простых чисел в этих последовательностях совпадают, а потому понятие ''простого числа Мерсенна'' не зависит от того, как именно определяются числа Мерсенна.&lt;br /&gt;
&lt;br /&gt;
При простых значениях n = p число   может оказаться простым, но может быть составным.&lt;br /&gt;
Например, при &amp;lt;math&amp;gt;p = 2, 3, 5, 7, 13, 17, 19&amp;lt;/math&amp;gt; мы получаем простые числа Мерсенна: &amp;lt;math&amp;gt;3, 7, 31, 127, 8191, 131071, 524287&amp;lt;/math&amp;gt;, а при &amp;lt;math&amp;gt;p = 11, 23, 29&amp;lt;/math&amp;gt; числа &amp;lt;math&amp;gt;2^p - 1&amp;lt;/math&amp;gt; - составные. &lt;br /&gt;
&lt;br /&gt;
'''Свойства чисел Мерсенна'''&lt;br /&gt;
&lt;br /&gt;
* Если &amp;lt;math&amp;gt;M_n&amp;lt;/math&amp;gt; является простым, то число ''n'' также простое. Обратное в общем случае неверно, наименьшим контрпримером является &amp;lt;math&amp;gt;M_{11} = 2047 = 23\cdot 89&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* Любой делитель числа &amp;lt;math&amp;gt;M_p&amp;lt;/math&amp;gt; для простого ''p'' имеет вид 2''pk''+1, где ''k'' — натуральное число (следствие малой теоремы Ферма).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Числа Мерсенна получили известность в связи с эффективным тестом простоты Люка — Лемера, благодаря которому простые числа Мерсенна давно удерживают лидерство как самые большие известные простые числа.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Определение'''&lt;br /&gt;
&lt;br /&gt;
'''Числа Ферма''' — числа вида &amp;lt;math&amp;gt;F_n=2^{2^n}+1&amp;lt;/math&amp;gt;, где ''n'' — неотрицательное целое число.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
При &amp;lt;math&amp;gt;n = 0, 1, 2, 3, 4&amp;lt;/math&amp;gt; числа Ферма простые: &amp;lt;math&amp;gt;3, 5, 17, 257, 65537&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Все числа Мерсенна и Ферма – взаимно простые.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Необходимо отметить, что значения чисел Мерсенна и Ферма быстро растут. Это не позволяет ограничиться только такими числами в качестве модулей СОК.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Операции над числами Мерсенна и Ферма'''&lt;br /&gt;
&lt;br /&gt;
1. Если в качестве модулей &amp;lt;math&amp;gt;p_j&amp;lt;/math&amp;gt; выбраны числа Мерсенна, т.е. числа вида &amp;lt;math&amp;gt;p_j = 2^{e_j} - 1&amp;lt;/math&amp;gt;, для которых значение модуля на единицу меньше очередной степени двойки, это зачастую упрощает выполнение основных арифметических операций, так как выполнять вычисления с числами в таком представлении несколько проще, чем с числами, представленными в обратном коде.&lt;br /&gt;
&lt;br /&gt;
При таком выборе модулей полезно несколько ослабить условие &amp;lt;math&amp;gt;0 \le {\alpha} &amp;lt; p_i&amp;lt;/math&amp;gt; и потребовать только чтобы &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;0 \le {\alpha}_j &amp;lt; 2^{e_j}, a_j \equiv A \pmod{{e_j}-1} &amp;lt;/math&amp;gt;. (1)&lt;br /&gt;
&lt;br /&gt;
Таким образом, значение &amp;lt;math&amp;gt;{\alpha}_j = p_j = 2^{e_j}-1&amp;lt;/math&amp;gt; принимается в качестве оптимального вместо &amp;lt;math&amp;gt;{\alpha}_j = 0&amp;lt;/math&amp;gt;, поскольку это, с одной стороны, не влияет на справедливость китайской теоремы об остатках, а с другой означает, что math&amp;gt;{\alpha}_j&amp;lt;/math&amp;gt; может быть любым math&amp;gt;{\alpha}_j&amp;lt;/math&amp;gt;- битовым двоичным числом. При таком допущении, операции сложения и вычитания по модулю &amp;lt;math&amp;gt;p_j&amp;lt;/math&amp;gt; выполняются следующим образом:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;{\alpha}_j \oplus {\beta}_j  = (({\alpha}_j + {\beta}_j) \pmod{e_j}) + \lfloor ({\alpha}_j + {\beta}_j) \ge 2^{e_j} \rfloor&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;{\alpha}_j \otimes {\beta}_j  = ({\alpha}_j \cdot {\beta}_j \pmod{e_j}) \oplus \lfloor ({\alpha}_j \cdot {\beta}_j) / 2^{e_j} \rfloor&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Здесь &amp;lt;math&amp;gt; \oplus &amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt; \otimes &amp;lt;/math&amp;gt; указывают на действия, которые с учётом условия (1) должны быть выполнены с отдельными компонентами кортежей &lt;br /&gt;
&amp;lt;math&amp;gt;{\alpha}_1, {\alpha}_2, \cdots, {\alpha}_n&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;{\beta}_1, {\beta}_2, \cdots, {\beta}_n&amp;lt;/math&amp;gt; при сложении или умножении соответственно. При вычитании можно пользоваться и соотношением:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;{\alpha}_j \ominus {\beta}_j  = (({\alpha}_j - {\beta}_j) \pmod{e_j}) - \left[ {\alpha}_j &amp;lt; {\beta}_j \right]&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Эти операции могут быть эффективно выполнены, даже если &amp;lt;math&amp;gt;2^{e_j}&amp;lt;/math&amp;gt; больше машинного слова компьютера, так как совсем просто вычислить остаток положительного числа по модулю степени 2 или разложить число по степеням 2. Для работы с модулями вида &amp;lt;math&amp;gt;2^{e_j}-1&amp;lt;/math&amp;gt; необходимо знать, при каких условиях число &amp;lt;math&amp;gt;2^{e_j}-1&amp;lt;/math&amp;gt; является взаимно простым с числом &amp;lt;math&amp;gt;2^{\beta}-1&amp;lt;/math&amp;gt;. Для этого существует простое правило:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;(2^e-1,2^{\beta}-1) = 2^{e,\beta}-1&amp;lt;/math&amp;gt;. (2)&lt;br /&gt;
&lt;br /&gt;
Формула (2) утверждает, в частности, что&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;(2^e-1,2^{\beta}-1) = 1 \Leftrightarrow (e,\beta) = 1&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Уравнение (2) следует из алгоритма Евклида и тождества&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;{(2^e-1)} \pmod {2^{\beta}-1} = 2^{e \pmod {b}} - 1&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Поэтому на компьютере с длиной слова &amp;lt;math&amp;gt;2^{32}&amp;lt;/math&amp;gt; можно выбрать&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;p_1 = 2^{32} - 1, p_2 = 2^{31} - 1, p_3 = 2^{29} - 1, p_4 = 2^{27} - 1, p_5 = 2^{25} - 1&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
что обеспечивает эффективность сложения, вычитания и умножения целых чисел в интервале вплоть до &amp;lt;math&amp;gt;p_1 \cdot p_2 \cdot p_3 \cdot p_4 \cdot p_5 &amp;gt; 2^{143}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
2. Прямое преобразование для чисел Мерсенна&lt;br /&gt;
&lt;br /&gt;
Модулярное представление &amp;lt;math&amp;gt;({\alpha}_1, {\alpha}_2, \ldots, {\alpha}_n)&amp;lt;/math&amp;gt; для заданного числа &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt; может быть получено посредством деления &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt; на &amp;lt;math&amp;gt;(p_1, p_2, \ldots, p_n)&amp;lt;/math&amp;gt; с запоминанием остатков. В случае, когда &amp;lt;math&amp;gt;A = {({\nu}_k, {\nu}_{k-1}, \ldots, {\nu}_0)}_b&amp;lt;/math&amp;gt;, возможно применение более подходящего способа, который состоит в том, чтобы, используя СОК, вычислить полином &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;(\ldots ({\nu}_k \cdot b + {\nu}_{k-1}) \cdot b + \ldots ) b + {\nu}_0)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Если основание &amp;lt;math&amp;gt;b = 2&amp;lt;/math&amp;gt; и модули &amp;lt;math&amp;gt;p_j&amp;lt;/math&amp;gt; имеют вид &amp;lt;math&amp;gt;2^{e_j}-1&amp;lt;/math&amp;gt;, оба подхода сводятся к совсем простому способу. &lt;br /&gt;
&lt;br /&gt;
Рассмотрим двоичные представления числа &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt; с блоками по &amp;lt;math&amp;gt;{e_j}&amp;lt;/math&amp;gt; бит:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;A = a_t \cdot N^t + a_{t-1} \cdot N^{t-1} + \ldots + a_1 \cdot N + a_0&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
где &amp;lt;math&amp;gt;N = 2^{e_j}&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;0 \le a_j &amp;lt; 2^{e_j}&amp;lt;/math&amp;gt; при &amp;lt;math&amp;gt;0 \le k \le t &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Тогда &amp;lt;math&amp;gt;A \equiv {(a_t + a_{t-1} + \ldots + a_1 + a_0)} \pmod {2^{e_j}-1}&amp;lt;/math&amp;gt;, поскольку &amp;lt;math&amp;gt;N \equiv 1 \pmod{2^{e_j}-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Поэтому &amp;lt;math&amp;gt;{\alpha}_j&amp;lt;/math&amp;gt; вычисляются путём сложения &amp;lt;math&amp;gt;e_j&amp;lt;/math&amp;gt;-битовых чисел &amp;lt;math&amp;gt;{a_t \oplus a_{t-1} \oplus \ldots \oplus a_1 \oplus a_0} \pmod{2^{e_j}-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
3. Обратное преобразование для чисел Мерсенна. Алгоритм Гарнера.&lt;br /&gt;
&lt;br /&gt;
Обратный переход от СОК к позиционной системе счисления несколько сложнее. Алгоритм, основанный на китайской теореме об остатках требует вычисления значение функции Эйлера для вычислении обратных мультипликативных элементов, что в общем случае требует факторизации, т.е. разложения чисел &amp;lt;math&amp;gt;p_j&amp;lt;/math&amp;gt; на простые множители. Даже это показывает, что обратное преобразование чисел из СОК в позиционную систему счисления в соответствии с этим алгоритмом требует большого числа вычислительных операций с высокой точностью. &lt;br /&gt;
Алгоритм перехода от &amp;lt;math&amp;gt;{\alpha}_1, {\alpha}_2, \cdots, {\alpha}_n&amp;lt;/math&amp;gt; к &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt;, пригодный для практического применения, основан на доказательстве китайской теоремы об остатках, предложенном в 1958 г. Х. Л. Гарнером. Оно основано на использовании &amp;lt;math&amp;gt;{C}_n^k&amp;lt;/math&amp;gt; констант &amp;lt;math&amp;gt;c_{ij} (1 \le i \le j \le k)&amp;lt;/math&amp;gt;, где &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;c_{ij} \equiv 1 \pmod{p_j}&amp;lt;/math&amp;gt;, (3)&lt;br /&gt;
&lt;br /&gt;
, т.е.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;c_{ij} = p_i^{-1} \pmod{p_j}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Алгоритм Гарнера'''&lt;br /&gt;
&lt;br /&gt;
Рассмотрим набор модулей &amp;lt;math&amp;gt;(p_1, p_2, \dots, p_n)&amp;lt;/math&amp;gt;, удовлетворяющих условию китайской теоремы об остатках. Любое число &amp;lt;math&amp;gt;0 \leqslant x &amp;lt; M = a_1\cdot a_2 \cdot\ldots\cdot a_n&amp;lt;/math&amp;gt; однозначно представимо в виде&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;x = x_1 + x_2\cdot p_1 + x_3\cdot p_1\cdot p_2 + \dots + x_n\cdot p_1\cdot p_2\cdot\ldots\cdot p_{n-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Вычислив по порядку все коэффициенты &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt; для &amp;lt;math&amp;gt;i \in \{1, 2, \dots, n\}&amp;lt;/math&amp;gt;, можно подставить их в формулу и найти искомое решение:&lt;br /&gt;
&lt;br /&gt;
Рассмотрим выражение для &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; по модулю &amp;lt;math&amp;gt;p_i&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;i\in \{2, \dots, n\}&amp;lt;/math&amp;gt;, получим:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;x_1 = r_1&amp;lt;/math&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;r_2 = (x_1 + x_2\cdot p_1) \pmod{p_2}&amp;lt;/math&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;x_2 = (r_2 - x_1)\cdot c_{12} \pmod{p_2}&amp;lt;/math&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;r_3 = (x_1 + x_2\cdot p_1 + x_3\cdot p_1\cdot p_2) \pmod{p_3}&amp;lt;/math&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;x_3 = ((r_3 - x_1)\cdot c_{13} - x_2)\cdot c_{23} \pmod{p_3}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
и так далее.&lt;br /&gt;
&lt;br /&gt;
Основное преимущество алгоритма Гарнера заключается в том, что вычисления производятся с числами, не превышающими величину модуля M.&lt;br /&gt;
&lt;br /&gt;
Константы &amp;lt;math&amp;gt;c_{ij}&amp;lt;/math&amp;gt; можно вычислить заранее с помощью расширенного алгоритма Евклида, который по заданным &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;j&amp;lt;/math&amp;gt; позволяет определить числа &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; такие, что &amp;lt;math&amp;gt;a\cdot p_i + b\cdot p_j = (p_i, p_j) = 1&amp;lt;/math&amp;gt;, и можно положить &amp;lt;math&amp;gt;c_{ij} = a&amp;lt;/math&amp;gt;. В частности, для величины, обратной к &amp;lt;math&amp;gt;2^{\alpha} - 1&amp;lt;/math&amp;gt; по модулю &amp;lt;math&amp;gt;2^{\beta} - 1&amp;lt;/math&amp;gt;, легко получить сравнительно простую формулу&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;((1+2^d+\ldots +2^{{c-1}\cdot d})\pmod {2^{\alpha} - 1}\cdot (2^{\alpha} - 1) = 1&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
где &amp;lt;math&amp;gt;\alpha \pmod {\beta} = d&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;c\alpha \pmod {\beta} = 1&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Действительно, если &amp;lt;math&amp;gt;\alpha = {\beta} +k\cdot q&amp;lt;/math&amp;gt;, то &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;2^{\alpha} = 2^{\beta} \cdot (2^q)^k \equiv 2^{\beta} \cdot 1^k \pmod{2^q - 1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Поэтому при &amp;lt;math&amp;gt;2^{\alpha} \equiv 2^{\beta} \pmod{2^q - 1}&amp;lt;/math&amp;gt; имеем &amp;lt;math&amp;gt;2^{{\alpha}\pmod{q}} \equiv 2^{{\beta}\pmod{q}} \pmod{2^q - 1}&amp;lt;/math&amp;gt;; а так как эти последние величины расположены между нулём и &amp;lt;math&amp;gt;{2^q - 1}&amp;lt;/math&amp;gt;, должно выполняться  &amp;lt;math&amp;gt;{\alpha}\pmod{q} = {\beta}\pmod{q}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Тогда&lt;br /&gt;
&lt;br /&gt;
:&lt;/div&gt;</summary>
		<author><name>Isaeva</name></author>	</entry>

	<entry>
		<id>https://vscripts.ru/w/%D0%A7%D0%B8%D1%81%D0%BB%D0%B0_%D0%9C%D0%B5%D1%80%D1%81%D0%B5%D0%BD%D0%BD%D0%B0_%D0%B8_%D0%A4%D0%B5%D1%80%D0%BC%D0%B0</id>
		<title>Числа Мерсенна и Ферма</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%A7%D0%B8%D1%81%D0%BB%D0%B0_%D0%9C%D0%B5%D1%80%D1%81%D0%B5%D0%BD%D0%BD%D0%B0_%D0%B8_%D0%A4%D0%B5%D1%80%D0%BC%D0%B0"/>
				<updated>2014-12-29T13:28:13Z</updated>
		
		<summary type="html">&lt;p&gt;Isaeva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;При рассмотрении отдельных классов простых чисел значительный интерес представляет вопрос о простых числах специального вида, например, числа Мерсенна или числа Ферма.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Определение'''&lt;br /&gt;
&lt;br /&gt;
'''Числа Мерсенна''' — числа вида &amp;lt;math&amp;gt;M_n = 2^n - 1&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; — натуральное число.&lt;br /&gt;
Названы в честь французского математика Марена Мерсенна.&lt;br /&gt;
&lt;br /&gt;
Иногда числами Мерсенна называют только числа &amp;lt;math&amp;gt;M_n&amp;lt;/math&amp;gt; с нечетными или простыми индексами ''n''. &lt;br /&gt;
&lt;br /&gt;
Множества простых чисел в этих последовательностях совпадают, а потому понятие ''простого числа Мерсенна'' не зависит от того, как именно определяются числа Мерсенна.&lt;br /&gt;
&lt;br /&gt;
При простых значениях n = p число   может оказаться простым, но может быть составным.&lt;br /&gt;
Например, при &amp;lt;math&amp;gt;p = 2, 3, 5, 7, 13, 17, 19&amp;lt;/math&amp;gt; мы получаем простые числа Мерсенна: &amp;lt;math&amp;gt;3, 7, 31, 127, 8191, 131071&amp;lt;/math&amp;gt;, а при &amp;lt;math&amp;gt;p = 11, 23, 29&amp;lt;/math&amp;gt; числа &amp;lt;math&amp;gt;2^p - 1&amp;lt;/math&amp;gt; - составные. &lt;br /&gt;
&lt;br /&gt;
'''Свойства чисел Мерсенна'''&lt;br /&gt;
&lt;br /&gt;
* Если &amp;lt;math&amp;gt;M_n&amp;lt;/math&amp;gt; является простым, то число ''n'' также простое. Обратное в общем случае неверно, наименьшим контрпримером является &amp;lt;math&amp;gt;M_{11} = 2047 = 23\cdot 89&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* Любой делитель числа &amp;lt;math&amp;gt;M_p&amp;lt;/math&amp;gt; для простого ''p'' имеет вид 2''pk''+1, где ''k'' — натуральное число (следствие малой теоремы Ферма).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Числа Мерсенна получили известность в связи с эффективным тестом простоты Люка — Лемера, благодаря которому простые числа Мерсенна давно удерживают лидерство как самые большие известные простые числа.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Определение'''&lt;br /&gt;
&lt;br /&gt;
'''Числа Ферма''' — числа вида &amp;lt;math&amp;gt;F_n=2^{2^n}+1&amp;lt;/math&amp;gt;, где ''n'' — неотрицательное целое число.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
При &amp;lt;math&amp;gt;n = 0, 1, 2, 3, 4&amp;lt;/math&amp;gt; числа Ферма простые: &amp;lt;math&amp;gt;3, 5, 17, 257, 65537&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Все числа Мерсенна и Ферма – взаимно простые.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Необходимо отметить, что значения чисел Мерсенна и Ферма быстро растут. Это не позволяет только такими числами в качестве модулей СОК.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Операции над числами Мерсенна и Ферма'''&lt;br /&gt;
&lt;br /&gt;
1. Если в качестве модулей &amp;lt;math&amp;gt;p_j&amp;lt;/math&amp;gt; выбраны числа Мерсенна, т.е. числа вида &amp;lt;math&amp;gt;p_j = 2^{e_j} - 1&amp;lt;/math&amp;gt;, для которых значение модуля на единицу меньше очередной степени двойки, это зачастую упрощает выполнение основных арифметических операций, так как выполнять вычисления с числами в таком представлении несколько проще, чем с числами, представленными в обратном коде.&lt;br /&gt;
&lt;br /&gt;
При таком выборе модулей полезно несколько ослабить условие &amp;lt;math&amp;gt;0 \le {\alpha} &amp;lt; p_i&amp;lt;/math&amp;gt; и потребовать только чтобы &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;0 \le {\alpha}_j &amp;lt; 2^{e_j}, a_i \equiv A \pmod{{e_j}-1} &amp;lt;/math&amp;gt;. (1)&lt;br /&gt;
&lt;br /&gt;
Таким образом, значение &amp;lt;math&amp;gt;{\alpha}_j = p_j = 2^{e_j}-1&amp;lt;/math&amp;gt; принимается в качестве оптимального вместо &amp;lt;math&amp;gt;{\alpha}_j = 0&amp;lt;/math&amp;gt;, поскольку это, с одной стороны, не влияет на справедливость китайской теоремы об остатках, а с другой означает, что math&amp;gt;{\alpha}_j&amp;lt;/math&amp;gt; может быть любым math&amp;gt;{\alpha}_j&amp;lt;/math&amp;gt;- битовым двоичным числом. При таком допущении, операции сложения и вычитания по модулю &amp;lt;math&amp;gt;p_j&amp;lt;/math&amp;gt; выполняются следующим образом:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;{\alpha}_j \oplus {\beta}_j  = (({\alpha}_j + {\beta}_j) \pmod{e_j}) + \lfloor ({\alpha}_j + {\beta}_j) \ge 2^{e_j} \rfloor&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;{\alpha}_j \otimes {\beta}_j  = ({\alpha}_j \cdot {\beta}_j \pmod{e_j}) \oplus \lfloor ({\alpha}_j \cdot {\beta}_j) / 2^{e_j} \rfloor&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Здесь &amp;lt;math&amp;gt; \oplus &amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt; \otimes &amp;lt;/math&amp;gt; указывают на действия, которые с учётом условия (1) должны быть выполнены с отдельными компонентами кортежей &lt;br /&gt;
&amp;lt;math&amp;gt;{\alpha}_1, {\alpha}_2, \cdots, {\alpha}_n&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;{\beta}_1, {\beta}_2, \cdots, {\beta}_n&amp;lt;/math&amp;gt; при сложении или умножении соответственно. При вычитании можно пользоваться и соотношением:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;{\alpha}_j \ominus {\beta}_j  = ({\alpha}_j - {\beta}_j \pmod{e_j}) - \left[ {\alpha}_j &amp;lt; {\beta}_j \right]&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Эти операции могут быть эффективно выполнены, даже если &amp;lt;math&amp;gt;2^{e_j}&amp;lt;/math&amp;gt; больше машинного слова компьютера, так как совсем просто вычислить остаток положительного числа по модулю степени 2 или разложить число по степеням 2. Для работы с модулями вида &amp;lt;math&amp;gt;2^{e_j}-1&amp;lt;/math&amp;gt; необходимо знать, при каких условиях число &amp;lt;math&amp;gt;2^{e_j}-1&amp;lt;/math&amp;gt; является взаимно простым с числом &amp;lt;math&amp;gt;2^{\beta}-1&amp;lt;/math&amp;gt;. Для этого существует простое правило:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;(2^e-1,2^{\beta}-1) = 2^{e,\beta}-1&amp;lt;/math&amp;gt;. (2)&lt;br /&gt;
&lt;br /&gt;
Формула (2) утверждает, в частности, что&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;(2^e-1,2^{\beta}-1) = 1 \Leftrightarrow (e,\beta) = 1&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Уравнение (2) следует из алгоритма Евклида и тождества&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;{(2^e-1)} \pmod {2^{\beta}-1} = 2^{e \pmod {b}} - 1&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Поэтому на компьютере с длиной слова &amp;lt;math&amp;gt;2^{32}&amp;lt;/math&amp;gt; можно выбрать&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;p_1 = 2^{32} - 1, p_2 = 2^{31} - 1, p_3 = 2^{29} - 1, p_4 = 2^{27} - 1, p_5 = 2^{25} - 1&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
что обеспечивает эффективность сложения, вычитания и умножения целых чисел в интервале вплоть до &amp;lt;math&amp;gt;p_1 \cdot p_2 \cdot p_3 \cdot p_4 \cdot p_5 &amp;gt; 2^{143}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
2. Прямое преобразование для чисел Мерсенна&lt;br /&gt;
&lt;br /&gt;
Модулярное представление &amp;lt;math&amp;gt;({\alpha}_1, {\alpha}_2, \ldots, {\alpha}_n)&amp;lt;/math&amp;gt; для заданного числа &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt; может быть получено посредством деления &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt; на &amp;lt;math&amp;gt;(p_1, p_2, \ldots, p_n)&amp;lt;/math&amp;gt; с запоминанием остатков. В случае, когда &amp;lt;math&amp;gt;A = {({\nu}_k, {\nu}_{k-1}, \ldots, {\nu}_0)}_b&amp;lt;/math&amp;gt;, возможно применение более подходящего способа, который состоит в том, чтобы, используя СОК, вычислить полином &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;(\ldots ({\nu}_k \cdot b + {\nu}_{k-1}) \cdot b + \ldots ) b + {\nu}_0)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Если основание &amp;lt;math&amp;gt;b = 2&amp;lt;/math&amp;gt; и модули &amp;lt;math&amp;gt;p_j&amp;lt;/math&amp;gt; имеют вид &amp;lt;math&amp;gt;2^{e_j}-1&amp;lt;/math&amp;gt;, оба подхода сводятся к совсем простому способу. &lt;br /&gt;
&lt;br /&gt;
Рассмотрим двоичные представления числа &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt; с блоками по &amp;lt;math&amp;gt;{e_j}&amp;lt;/math&amp;gt; бит:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;A = a_t \cdot N^t + a_{t-1} \cdot N^{t-1} + \ldots + a_1 \cdot N + a_0&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
где &amp;lt;math&amp;gt;N = 2^{e_j}&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;0 \le a_j &amp;lt; 2^{e_j}&amp;lt;/math&amp;gt; при &amp;lt;math&amp;gt;0 \le k \le t &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Тогда &amp;lt;math&amp;gt;A \equiv {(a_t + a_{t-1} + \ldots + a_1 + a_0)} \pmod {2^{e_j}-1}&amp;lt;/math&amp;gt;, поскольку &amp;lt;math&amp;gt;N \equiv 1 \pmod{2^{e_j}-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Поэтому &amp;lt;math&amp;gt;{\alpha}_j&amp;lt;/math&amp;gt; вычисляются путём сложения &amp;lt;math&amp;gt;e_j&amp;lt;/math&amp;gt;-битовых чисел &amp;lt;math&amp;gt;{a_t \oplus a_{t-1} \oplus \ldots \oplus a_1 \oplus a_0} \pmod{2^{e_j}-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
3. Обратное преобразование для чисел Мерсенна. Алгоритм Гарнера.&lt;br /&gt;
&lt;br /&gt;
Обратный переход от СОК к позиционной системе счисления несколько сложнее. Алгоритм, основанный на китайской теореме об остатках требует вычисления значение функции Эйлера для вычислении обратных мультипликативных элементов, что в общем случае требует факторизации, т.е. разложения чисел &amp;lt;math&amp;gt;p_j&amp;lt;/math&amp;gt; на простые множители. Даже это показывает, что обратное преобразование чисел из СОК в позиционную систему счисления в соответствии с этим алгоритмом требует большого числа вычислительных операций с высокой точностью. &lt;br /&gt;
Алгоритм перехода от &amp;lt;math&amp;gt;{\alpha}_1, {\alpha}_2, \cdots, {\alpha}_n&amp;lt;/math&amp;gt; к &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt;, пригодный для практического применения, основан на доказательстве китайской теоремы об остатках, предложенном в 1958 г. Х. Л. Гарнером. Оно основано на использовании &amp;lt;math&amp;gt;{C}_n^k&amp;lt;/math&amp;gt; констант &amp;lt;math&amp;gt;c_{ij} (1 \le i \le j \le k)&amp;lt;/math&amp;gt;, где &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;c_{ij} \equiv 1 \pmod{p_j}&amp;lt;/math&amp;gt;, (3)&lt;br /&gt;
&lt;br /&gt;
, т.е.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;c_{ij} = p_i^{-1} \pmod{p_j}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Алгоритм Гарнера'''&lt;br /&gt;
&lt;br /&gt;
Рассмотрим набор модулей &amp;lt;math&amp;gt;(p_1, p_2, \dots, p_n)&amp;lt;/math&amp;gt;, удовлетворяющих условию китайской теоремы об остатках. Любое число &amp;lt;math&amp;gt;0 \leqslant x &amp;lt; M = a_1\cdot a_2 \cdot\ldots\cdot a_n&amp;lt;/math&amp;gt; однозначно представимо в виде&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;x = x_1 + x_2\cdot p_1 + x_3\cdot p_1\cdot p_2 + \dots + x_n\cdot p_1\cdot p_2\cdot\ldots\cdot p_{n-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Вычислив по порядку все коэффициенты &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt; для &amp;lt;math&amp;gt;i \in \{1, 2, \dots, n\}&amp;lt;/math&amp;gt;, можно подставить их в формулу и найти искомое решение:&lt;br /&gt;
&lt;br /&gt;
Рассмотрим выражение для &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; по модулю &amp;lt;math&amp;gt;p_i&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;i\in \{2, \dots, n\}&amp;lt;/math&amp;gt;, получим:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;x_1 = r_1&amp;lt;/math&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;r_2 = (x_1 + x_2\cdot p_1) \pmod{p_2}&amp;lt;/math&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;x_2 = (r_2 - x_1)\cdot c_{12} \pmod{p_2}&amp;lt;/math&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;r_3 = (x_1 + x_2\cdot p_1 + x_3\cdot p_1\cdot p_2) \pmod{p_3}&amp;lt;/math&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;x_3 = ((r_3 - x_1)\cdot c_{13} - x_2)\cdot c_{23} \pmod{p_3}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
и так далее.&lt;br /&gt;
&lt;br /&gt;
Основное преимущество алгоритма Гарнера заключается в том, что вычисления производятся с числами, не превышающими величину модуля M.&lt;br /&gt;
&lt;br /&gt;
Константы &amp;lt;math&amp;gt;c_{ij}&amp;lt;/math&amp;gt; можно вычислить заранее с помощью расширенного алгоритма Евклида, который по заданным &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;j&amp;lt;/math&amp;gt; позволяет определить числа &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; такие, что &amp;lt;math&amp;gt;a\cdot p_i + b\cdot p_j = (p_i, p_j) = 1&amp;lt;/math&amp;gt;, и можно положить &amp;lt;math&amp;gt;c_{ij} = a&amp;lt;/math&amp;gt;. В частности, для величины, обратной к &amp;lt;math&amp;gt;2^{\alpha} - 1&amp;lt;/math&amp;gt; по модулю &amp;lt;math&amp;gt;2^{\beta} - 1&amp;lt;/math&amp;gt;, легко получить сравнительно простую формулу&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;((1+2^d+\ldots +2^{{c-1}\cdot d})\pmod {2^{\alpha} - 1}\cdot (2^{\alpha} - 1) = 1&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
где &amp;lt;math&amp;gt;\alpha \pmod {\beta} = d&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;c\alpha \pmod {\beta} = 1&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Действительно, если &amp;lt;math&amp;gt;\alpha = {\beta} +k\cdot q&amp;lt;/math&amp;gt;, то &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;2^{\alpha} = 2^{\beta} \cdot (2^q)^k \equiv 2^{\beta} \cdot 1^k \pmod{2^q - 1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Поэтому при &amp;lt;math&amp;gt;2^{\alpha} \equiv 2^{\beta} \pmod{2^q - 1}&amp;lt;/math&amp;gt; имеем &amp;lt;math&amp;gt;2^{{\alpha}\pmod{q}} \equiv 2^{{\beta}\pmod{q}} \pmod{2^q - 1}&amp;lt;/math&amp;gt;; а так как эти последние величины расположены между нулём и &amp;lt;math&amp;gt;{2^q - 1}&amp;lt;/math&amp;gt;, должно выполняться  &amp;lt;math&amp;gt;{\alpha}\pmod{q} = {\beta}\pmod{q}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Тогда&lt;br /&gt;
&lt;br /&gt;
:&lt;/div&gt;</summary>
		<author><name>Isaeva</name></author>	</entry>

	<entry>
		<id>https://vscripts.ru/w/%D0%A7%D0%B8%D1%81%D0%BB%D0%B0_%D0%9C%D0%B5%D1%80%D1%81%D0%B5%D0%BD%D0%BD%D0%B0_%D0%B8_%D0%A4%D0%B5%D1%80%D0%BC%D0%B0</id>
		<title>Числа Мерсенна и Ферма</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%A7%D0%B8%D1%81%D0%BB%D0%B0_%D0%9C%D0%B5%D1%80%D1%81%D0%B5%D0%BD%D0%BD%D0%B0_%D0%B8_%D0%A4%D0%B5%D1%80%D0%BC%D0%B0"/>
				<updated>2014-12-29T12:47:44Z</updated>
		
		<summary type="html">&lt;p&gt;Isaeva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;При рассмотрении отдельных классов простых чисел значительный интерес представляет вопрос о простых числах специального вида, например, числа Мерсенна или числа Ферма.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Определение'''&lt;br /&gt;
&lt;br /&gt;
'''Числа Мерсенна''' — числа вида &amp;lt;math&amp;gt;M_n = 2^n - 1&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; — натуральное число.&lt;br /&gt;
Названы в честь французского математика Марена Мерсенна.&lt;br /&gt;
&lt;br /&gt;
Иногда числами Мерсенна называют только числа &amp;lt;math&amp;gt;M_n&amp;lt;/math&amp;gt; с нечетными или простыми индексами ''n''. &lt;br /&gt;
&lt;br /&gt;
Множества простых чисел в этих последовательностях совпадают, а потому понятие ''простого числа Мерсенна'' не зависит от того, как именно определяются числа Мерсенна.&lt;br /&gt;
&lt;br /&gt;
При простых значениях n = p число   может оказаться простым, но может быть составным.&lt;br /&gt;
Например, при &amp;lt;math&amp;gt;p = 2, 3, 5, 7, 13, 17, 19&amp;lt;/math&amp;gt; мы получаем простые числа Мерсенна: &amp;lt;math&amp;gt;3, 7, 31, 127, 8191, 131071&amp;lt;/math&amp;gt;, а при &amp;lt;math&amp;gt;p = 11, 23, 29&amp;lt;/math&amp;gt; числа &amp;lt;math&amp;gt;2^p - 1&amp;lt;/math&amp;gt; - составные. &lt;br /&gt;
&lt;br /&gt;
'''Свойства чисел Мерсенна'''&lt;br /&gt;
&lt;br /&gt;
* Если &amp;lt;math&amp;gt;M_n&amp;lt;/math&amp;gt; является простым, то число ''n'' также простое. Обратное в общем случае неверно, наименьшим контрпримером является &amp;lt;math&amp;gt;M_{11} = 2047 = 23\cdot 89&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* Любой делитель числа &amp;lt;math&amp;gt;M_p&amp;lt;/math&amp;gt; для простого ''p'' имеет вид 2''pk''+1, где ''k'' — натуральное число (следствие малой теоремы Ферма).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Числа Мерсенна получили известность в связи с эффективным тестом простоты Люка — Лемера, благодаря которому простые числа Мерсенна давно удерживают лидерство как самые большие известные простые числа.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Определение'''&lt;br /&gt;
&lt;br /&gt;
'''Числа Ферма''' — числа вида &amp;lt;math&amp;gt;F_n=2^{2^n}+1&amp;lt;/math&amp;gt;, где ''n'' — неотрицательное целое число.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
При &amp;lt;math&amp;gt;n = 0, 1, 2, 3, 4&amp;lt;/math&amp;gt; числа Ферма простые: &amp;lt;math&amp;gt;3, 5, 17, 257, 65537&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Все числа Мерсенна и Ферма – взаимно простые.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Необходимо отметить, что значения чисел Мерсенна и Ферма быстро растут. Это не позволяет только такими числами в качестве модулей СОК.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Операции над числами Мерсенна и Ферма'''&lt;br /&gt;
&lt;br /&gt;
1. Если в качестве модулей &amp;lt;math&amp;gt;p_j&amp;lt;/math&amp;gt; выбраны числа Мерсенна, т.е. числа вида &amp;lt;math&amp;gt;p_j = 2^{e_j} - 1&amp;lt;/math&amp;gt;, для которых значение модуля на единицу меньше очередной степени двойки, это зачастую упрощает выполнение основных арифметических операций, так как выполнять вычисления с числами в таком представлении несколько проще, чем с числами, представленными в обратном коде.&lt;br /&gt;
&lt;br /&gt;
При таком выборе модулей полезно несколько ослабить условие &amp;lt;math&amp;gt;0 \le {\alpha} &amp;lt; p_i&amp;lt;/math&amp;gt; и потребовать только чтобы &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;0 \le {\alpha}_j &amp;lt; 2^{e_j}, a_i \equiv A \pmod{{e_j}-1} &amp;lt;/math&amp;gt;. (1)&lt;br /&gt;
&lt;br /&gt;
Таким образом, значение &amp;lt;math&amp;gt;{\alpha}_j = p_j = 2^{e_j}-1&amp;lt;/math&amp;gt; принимается в качестве оптимального вместо &amp;lt;math&amp;gt;{\alpha}_j = 0&amp;lt;/math&amp;gt;, поскольку это, с одной стороны, не влияет на справедливость китайской теоремы об остатках, а с другой означает, что math&amp;gt;{\alpha}_j&amp;lt;/math&amp;gt; может быть любым math&amp;gt;{\alpha}_j&amp;lt;/math&amp;gt;- битовым двоичным числом. При таком допущении, операции сложения и вычитания по модулю &amp;lt;math&amp;gt;p_j&amp;lt;/math&amp;gt; выполняются следующим образом:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;{\alpha}_j \oplus {\beta}_j  = (({\alpha}_j + {\beta}_j) \pmod{e_j}) + \lfloor ({\alpha}_j + {\beta}_j) \ge 2^{e_j} \rfloor&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;{\alpha}_j \otimes {\beta}_j  = ({\alpha}_j \cdot {\beta}_j \pmod{e_j}) \oplus \lfloor ({\alpha}_j \cdot {\beta}_j) / 2^{e_j} \rfloor&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Здесь &amp;lt;math&amp;gt; \oplus &amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt; \otimes &amp;lt;/math&amp;gt; указывают на действия, которые с учётом условия (1) должны быть выполнены с отдельными компонентами кортежей &lt;br /&gt;
&amp;lt;math&amp;gt;{\alpha}_1, {\alpha}_2, \cdots, {\alpha}_n&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;{\beta}_1, {\beta}_2, \cdots, {\beta}_n&amp;lt;/math&amp;gt; при сложении или умножении соответственно. При вычитании можно пользоваться и соотношением:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;{\alpha}_j \ominus {\beta}_j  = ({\alpha}_j - {\beta}_j \pmod{e_j}) - \left[ {\alpha}_j &amp;lt; {\beta}_j \right]&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Эти операции могут быть эффективно выполнены, даже если &amp;lt;math&amp;gt;2^{e_j}&amp;lt;/math&amp;gt; больше машинного слова компьютера, так как совсем просто вычислить остаток положительного числа по модулю степени 2 или разложить число по степеням 2. Для работы с модулями вида &amp;lt;math&amp;gt;2^{e_j}-1&amp;lt;/math&amp;gt; необходимо знать, при каких условиях число &amp;lt;math&amp;gt;2^{e_j}-1&amp;lt;/math&amp;gt; является взаимно простым с числом &amp;lt;math&amp;gt;2^{\beta}-1&amp;lt;/math&amp;gt;. Для этого существует простое правило:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;(2^e-1,2^{\beta}-1) = 2^{e,\beta}-1&amp;lt;/math&amp;gt;. (2)&lt;br /&gt;
&lt;br /&gt;
Формула (2) утверждает, в частности, что&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;(2^e-1,2^{\beta}-1) = 1 \Leftrightarrow (e,\beta) = 1&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Уравнение (2) следует из алгоритма Евклида и тождества&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;{(2^e-1)} \pmod {2^{\beta}-1} = 2^{e \pmod {b}} - 1&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Поэтому на компьютере с длиной слова &amp;lt;math&amp;gt;2^{32}&amp;lt;/math&amp;gt; можно выбрать&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;p_1 = 2^{32} - 1, p_2 = 2^{31} - 1, p_3 = 2^{29} - 1, p_4 = 2^{27} - 1, p_5 = 2^{25} - 1&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
что обеспечивает эффективность сложения, вычитания и умножения целых чисел в интервале вплоть до &amp;lt;math&amp;gt;p_1 \cdot p_2 \cdot p_3 \cdot p_4 \cdot p_5 &amp;gt; 2^{143}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
2. Прямое преобразование для чисел Мерсенна&lt;br /&gt;
&lt;br /&gt;
Модулярное представление &amp;lt;math&amp;gt;({\alpha}_1, {\alpha}_2, \ldots, {\alpha}_n)&amp;lt;/math&amp;gt; для заданного числа &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt; может быть получено посредством деления &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt; на &amp;lt;math&amp;gt;(p_1, p_2, \ldots, p_n)&amp;lt;/math&amp;gt; с запоминанием остатков. В случае, когда &amp;lt;math&amp;gt;A = {({\nu}_k, {\nu}_{k-1}, \ldots, {\nu}_0)}_b&amp;lt;/math&amp;gt;, возможно применение более подходящего способа, который состоит в том, чтобы, используя СОК, вычислить полином &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;(\ldots ({\nu}_k \cdot b + {\nu}_{k-1}) \cdot b + \ldots ) b + {\nu}_0)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Если основание &amp;lt;math&amp;gt;b = 2&amp;lt;/math&amp;gt; и модули &amp;lt;math&amp;gt;p_j&amp;lt;/math&amp;gt; имеют вид &amp;lt;math&amp;gt;2^{e_j}-1&amp;lt;/math&amp;gt;, оба подхода сводятся к совсем простому способу. &lt;br /&gt;
&lt;br /&gt;
Рассмотрим двоичные представления числа &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt; с блоками по &amp;lt;math&amp;gt;{e_j}&amp;lt;/math&amp;gt; бит:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;A = a_t \cdot N^t + a_{t-1} \cdot N^{t-1} + \ldots + a_1 \cdot N + a_0&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
где &amp;lt;math&amp;gt;N = 2^{e_j}&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;0 \le a_j &amp;lt; 2^{e_j}&amp;lt;/math&amp;gt; при &amp;lt;math&amp;gt;0 \le k \le t &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Тогда &amp;lt;math&amp;gt;A \equiv {(a_t + a_{t-1} + \ldots + a_1 + a_0)} \pmod {2^{e_j}-1}&amp;lt;/math&amp;gt;, поскольку &amp;lt;math&amp;gt;N \equiv 1 \pmod{2^{e_j}-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Поэтому &amp;lt;math&amp;gt;{\alpha}_j&amp;lt;/math&amp;gt; вычисляются путём сложения &amp;lt;math&amp;gt;e_j&amp;lt;/math&amp;gt;-битовых чисел &amp;lt;math&amp;gt;{a_t \oplus a_{t-1} \oplus \ldots \oplus a_1 \oplus a_0} \pmod{2^{e_j}-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
3. Обратное преобразование для чисел Мерсенна. Алгоритм Гарнера.&lt;br /&gt;
&lt;br /&gt;
Обратный переход от СОК к позиционной системе счисления несколько сложнее. Алгоритм, основанный на китайской теореме об остатках требует вычисления значение функции Эйлера для вычислении обратных мультипликативных элементов, что в общем случае требует факторизации, т.е. разложения чисел &amp;lt;math&amp;gt;p_j&amp;lt;/math&amp;gt; на простые множители. Даже это показывает, что обратное преобразование чисел из СОК в позиционную систему счисления в соответствии с этим алгоритмом требует большого числа вычислительных операций с высокой точностью. &lt;br /&gt;
Алгоритм перехода от &amp;lt;math&amp;gt;{\alpha}_1, {\alpha}_2, \cdots, {\alpha}_n&amp;lt;/math&amp;gt; к &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt;, пригодный для практического применения, основан на доказательстве китайской теоремы об остатках, предложенном в 1958 г. Х. Л. Гарнером. Оно основано на использовании &amp;lt;math&amp;gt;{C}_n^k&amp;lt;/math&amp;gt; констант &amp;lt;math&amp;gt;c_{ij} (1 \le i \le j \le k)&amp;lt;/math&amp;gt;, где &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;c_{ij} \equiv 1 \pmod{p_j}&amp;lt;/math&amp;gt;, (3)&lt;br /&gt;
&lt;br /&gt;
, т.е.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;c_{ij} = p_i^{-1} \pmod{p_j}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Алгоритм Гарнера'''&lt;br /&gt;
&lt;br /&gt;
Рассмотрим набор модулей &amp;lt;math&amp;gt;(p_1, p_2, \dots, p_n)&amp;lt;/math&amp;gt;, удовлетворяющих условию китайской теоремы об остатках. Любое число &amp;lt;math&amp;gt;0 \leqslant x &amp;lt; M = a_1\cdot a_2 \cdot\ldots\cdot a_n&amp;lt;/math&amp;gt; однозначно представимо в виде&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;x = x_1 + x_2\cdot p_1 + x_3\cdot p_1\cdot p_2 + \dots + x_n\cdot p_1\cdot p_2\cdot\ldots\cdot p_{n-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Вычислив по порядку все коэффициенты &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt; для &amp;lt;math&amp;gt;i \in \{1, 2, \dots, n\}&amp;lt;/math&amp;gt;, можно подставить их в формулу и найти искомое решение:&lt;br /&gt;
&lt;br /&gt;
Рассмотрим выражение для &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; по модулю &amp;lt;math&amp;gt;p_i&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;i\in \{2, \dots, n\}&amp;lt;/math&amp;gt;, получим:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;x_1 = r_1&amp;lt;/math&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;r_2 = (x_1 + x_2\cdot p_1) \pmod{p_2}&amp;lt;/math&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;x_2 = (r_2 - x_1)\cdot c_{12} \pmod{p_2}&amp;lt;/math&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;r_3 = (x_1 + x_2\cdot p_1 + x_3\cdot p_1\cdot p_2) \pmod{p_3}&amp;lt;/math&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;x_3 = ((r_3 - x_1)\cdot c_{13} - x_2)\cdot c_{23} \pmod{p_3}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
и так далее.&lt;br /&gt;
&lt;br /&gt;
Основное преимущество алгоритма Гарнера заключается в том, что вычисления производятся с числами, не превышающими величину модуля M.&lt;/div&gt;</summary>
		<author><name>Isaeva</name></author>	</entry>

	<entry>
		<id>https://vscripts.ru/w/%D0%A7%D0%B8%D1%81%D0%BB%D0%B0_%D0%9C%D0%B5%D1%80%D1%81%D0%B5%D0%BD%D0%BD%D0%B0_%D0%B8_%D0%A4%D0%B5%D1%80%D0%BC%D0%B0</id>
		<title>Числа Мерсенна и Ферма</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%A7%D0%B8%D1%81%D0%BB%D0%B0_%D0%9C%D0%B5%D1%80%D1%81%D0%B5%D0%BD%D0%BD%D0%B0_%D0%B8_%D0%A4%D0%B5%D1%80%D0%BC%D0%B0"/>
				<updated>2014-12-25T14:03:13Z</updated>
		
		<summary type="html">&lt;p&gt;Isaeva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;При рассмотрении отдельных классов простых чисел значительный интерес представляет вопрос о простых числах специального вида, например, числа Мерсенна или числа Ферма.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Определение'''&lt;br /&gt;
&lt;br /&gt;
'''Числа Мерсенна''' — числа вида &amp;lt;math&amp;gt;M_n = 2^n - 1&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; — натуральное число.&lt;br /&gt;
Названы в честь французского математика Марена Мерсенна.&lt;br /&gt;
&lt;br /&gt;
Иногда числами Мерсенна называют только числа &amp;lt;math&amp;gt;M_n&amp;lt;/math&amp;gt; с нечетными или простыми индексами ''n''. &lt;br /&gt;
&lt;br /&gt;
Множества простых чисел в этих последовательностях совпадают, а потому понятие ''простого числа Мерсенна'' не зависит от того, как именно определяются числа Мерсенна.&lt;br /&gt;
&lt;br /&gt;
При простых значениях n = p число   может оказаться простым, но может быть составным.&lt;br /&gt;
Например, при &amp;lt;math&amp;gt;p = 2, 3, 5, 7, 13, 17, 19&amp;lt;/math&amp;gt; мы получаем простые числа Мерсенна: &amp;lt;math&amp;gt;3, 7, 31, 127, 8191, 131071&amp;lt;/math&amp;gt;, а при &amp;lt;math&amp;gt;p = 11, 23, 29&amp;lt;/math&amp;gt; числа &amp;lt;math&amp;gt;2^p - 1&amp;lt;/math&amp;gt; - составные. &lt;br /&gt;
&lt;br /&gt;
'''Свойства чисел Мерсенна'''&lt;br /&gt;
&lt;br /&gt;
* Если &amp;lt;math&amp;gt;M_n&amp;lt;/math&amp;gt; является простым, то число ''n'' также простое. Обратное в общем случае неверно, наименьшим контрпримером является &amp;lt;math&amp;gt;M_{11} = 2047 = 23\cdot 89&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* Любой делитель числа &amp;lt;math&amp;gt;M_p&amp;lt;/math&amp;gt; для простого ''p'' имеет вид 2''pk''+1, где ''k'' — натуральное число (следствие малой теоремы Ферма).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Числа Мерсенна получили известность в связи с эффективным тестом простоты Люка — Лемера, благодаря которому простые числа Мерсенна давно удерживают лидерство как самые большие известные простые числа.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Определение'''&lt;br /&gt;
&lt;br /&gt;
'''Числа Ферма''' — числа вида &amp;lt;math&amp;gt;F_n=2^{2^n}+1&amp;lt;/math&amp;gt;, где ''n'' — неотрицательное целое число.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
При &amp;lt;math&amp;gt;n = 0, 1, 2, 3, 4&amp;lt;/math&amp;gt; числа Ферма простые: &amp;lt;math&amp;gt;3, 5, 17, 257, 65537&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Все числа Мерсенна и Ферма – взаимно простые.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Необходимо отметить, что значения чисел Мерсенна и Ферма быстро растут. Это не позволяет только такими числами в качестве модулей СОК.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Операции над числами Мерсенна и Ферма'''&lt;br /&gt;
&lt;br /&gt;
1. Если в качестве модулей &amp;lt;math&amp;gt;p_j&amp;lt;/math&amp;gt; выбраны числа Мерсенна, т.е. числа вида &amp;lt;math&amp;gt;p_j = 2^{e_j} - 1&amp;lt;/math&amp;gt;, для которых значение модуля на единицу меньше очередной степени двойки, это зачастую упрощает выполнение основных арифметических операций, так как выполнять вычисления с числами в таком представлении несколько проще, чем с числами, представленными в обратном коде.&lt;br /&gt;
&lt;br /&gt;
При таком выборе модулей полезно несколько ослабить условие &amp;lt;math&amp;gt;0 \le {\alpha} &amp;lt; p_i&amp;lt;/math&amp;gt; и потребовать только чтобы &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;0 \le {\alpha}_j &amp;lt; 2^{e_j}, a_i \equiv A \pmod{{e_j}-1} &amp;lt;/math&amp;gt;. (1)&lt;br /&gt;
&lt;br /&gt;
Таким образом, значение &amp;lt;math&amp;gt;{\alpha}_j = p_j = 2^{e_j}-1&amp;lt;/math&amp;gt; принимается в качестве оптимального вместо &amp;lt;math&amp;gt;{\alpha}_j = 0&amp;lt;/math&amp;gt;, поскольку это, с одной стороны, не влияет на справедливость китайской теоремы об остатках, а с другой означает, что math&amp;gt;{\alpha}_j&amp;lt;/math&amp;gt; может быть любым math&amp;gt;{\alpha}_j&amp;lt;/math&amp;gt;- битовым двоичным числом. При таком допущении, операции сложения и вычитания по модулю &amp;lt;math&amp;gt;p_j&amp;lt;/math&amp;gt; выполняются следующим образом:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;{\alpha}_j \oplus {\beta}_j  = (({\alpha}_j + {\beta}_j) \pmod{e_j}) + \lfloor ({\alpha}_j + {\beta}_j) \ge 2^{e_j} \rfloor&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;{\alpha}_j \otimes {\beta}_j  = ({\alpha}_j \cdot {\beta}_j \pmod{e_j}) \oplus \lfloor ({\alpha}_j \cdot {\beta}_j) / 2^{e_j} \rfloor&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Здесь &amp;lt;math&amp;gt; \oplus &amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt; \otimes &amp;lt;/math&amp;gt; указывают на действия, которые с учётом условия (1) должны быть выполнены с отдельными компонентами кортежей &lt;br /&gt;
&amp;lt;math&amp;gt;{\alpha}_1, {\alpha}_2, \cdots, {\alpha}_n&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;{\beta}_1, {\beta}_2, \cdots, {\beta}_n&amp;lt;/math&amp;gt; при сложении или умножении соответственно. При вычитании можно пользоваться и соотношением:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;{\alpha}_j \ominus {\beta}_j  = ({\alpha}_j - {\beta}_j \pmod{e_j}) - \left[ {\alpha}_j &amp;lt; {\beta}_j \right]&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Эти операции могут быть эффективно выполнены, даже если &amp;lt;math&amp;gt;2^{e_j}&amp;lt;/math&amp;gt; больше машинного слова компьютера, так как совсем просто вычислить остаток положительного числа по модулю степени 2 или разложить число по степеням 2. Для работы с модулями вида &amp;lt;math&amp;gt;2^{e_j}-1&amp;lt;/math&amp;gt; необходимо знать, при каких условиях число &amp;lt;math&amp;gt;2^{e_j}-1&amp;lt;/math&amp;gt; является взаимно простым с числом &amp;lt;math&amp;gt;2^{\beta}-1&amp;lt;/math&amp;gt;. Для этого существует простое правило:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;(2^e-1,2^{\beta}-1) = 2^{e,\beta}-1&amp;lt;/math&amp;gt;. (2)&lt;br /&gt;
&lt;br /&gt;
Формула (2) утверждает, в частности, что&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;(2^e-1,2^{\beta}-1) = 1 \Leftrightarrow (e,\beta) = 1&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Уравнение (2) следует из алгоритма Евклида и тождества&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;{(2^e-1)} \pmod {2^{\beta}-1} = 2^{e \pmod {b}} - 1&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Поэтому на компьютере с длиной слова &amp;lt;math&amp;gt;2^{32}&amp;lt;/math&amp;gt; можно выбрать&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;p_1 = 2^{32} - 1, p_2 = 2^{31} - 1, p_3 = 2^{29} - 1, p_4 = 2^{27} - 1, p_5 = 2^{25} - 1&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
что обеспечивает эффективность сложения, вычитания и умножения целых чисел в интервале вплоть до &amp;lt;math&amp;gt;p_1 \cdot p_2 \cdot p_3 \cdot p_4 \cdot p_5 &amp;gt; 2^{143}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
2. Прямое преобразование для чисел Мерсенна&lt;br /&gt;
&lt;br /&gt;
Модулярное представление &amp;lt;math&amp;gt;({\alpha}_1, {\alpha}_2, \ldots, {\alpha}_n)&amp;lt;/math&amp;gt; для заданного числа &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt; может быть получено посредством деления &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt; на &amp;lt;math&amp;gt;(p_1, p_2, \ldots, p_n)&amp;lt;/math&amp;gt; с запоминанием остатков. В случае, когда &amp;lt;math&amp;gt;A = {({\nu}_k, {\nu}_{k-1}, \ldots, {\nu}_0)}_b&amp;lt;/math&amp;gt;, возможно применение более подходящего способа, который состоит в том, чтобы, используя СОК, вычислить полином &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;(\ldots ({\nu}_k \cdot b + {\nu}_{k-1}) \cdot b + \ldots ) b + {\nu}_0)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Если основание &amp;lt;math&amp;gt;b = 2&amp;lt;/math&amp;gt; и модули &amp;lt;math&amp;gt;p_j&amp;lt;/math&amp;gt; имеют вид &amp;lt;math&amp;gt;2^{e_j}-1&amp;lt;/math&amp;gt;, оба подхода сводятся к совсем простому способу. &lt;br /&gt;
&lt;br /&gt;
Рассмотрим двоичные представления числа &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt; с блоками по &amp;lt;math&amp;gt;{e_j}&amp;lt;/math&amp;gt; бит:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;A = a_t \cdot N^t + a_{t-1} \cdot N^{t-1} + \ldots + a_1 \cdot N + a_0&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
где &amp;lt;math&amp;gt;N = 2^{e_j}&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;0 \le a_j &amp;lt; 2^{e_j}&amp;lt;/math&amp;gt; при &amp;lt;math&amp;gt;0 \le k \le t &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Тогда &amp;lt;math&amp;gt;A \equiv {(a_t + a_{t-1} + \ldots + a_1 + a_0)} \pmod {2^{e_j}-1}&amp;lt;/math&amp;gt;, поскольку &amp;lt;math&amp;gt;N \equiv 1 \pmod{2^{e_j}-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Поэтому &amp;lt;math&amp;gt;{\alpha}_j&amp;lt;/math&amp;gt; вычисляются путём сложения &amp;lt;math&amp;gt;e_j&amp;lt;/math&amp;gt;-битовых чисел &amp;lt;math&amp;gt;{a_t \oplus a_{t-1} \oplus \ldots \oplus a_1 \oplus a_0} \pmod{2^{e_j}-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
3. Обратное преобразование для чисел Мерсенна. Метод Гарнера.&lt;br /&gt;
&lt;br /&gt;
Обратный переход от СОК к позиционной системе счисления несколько сложнее. Как мы видели при доказательстве китайской теоремы об остатках, при вычислении обратных мультипликативных элементов требуется уметь вычислять значение функции Эйлера, которое в общем случае требует факторизации, т.е. разложения чисел &amp;lt;math&amp;gt;p_j&amp;lt;/math&amp;gt; на простые множители. Даже это обстоятельство показывает, что обратное преобразование чисел из СОК в позиционную систему счисления в соответствии сэтим алгоритмом требует большого числа вычислительных операций с высокой точностью, а именно этого хотелось бы избежать. &lt;br /&gt;
Метод перехода от &amp;lt;math&amp;gt;{\alpha}_1, {\alpha}_2, \cdots, {\alpha}_n&amp;lt;/math&amp;gt; к &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt;, пригодный для практического применения, основан на другом доказательстве китайской теоремы об остатках. Такое доказательство предложено в 1958 г. Х. Л. Гарнером. Оно основано на использовании &amp;lt;math&amp;gt;{C_n}_k&amp;lt;/math&amp;gt; констант &amp;lt;math&amp;gt;c_{i,j} (1 \le i \le j \le k)&amp;lt;/math&amp;gt;, где &lt;br /&gt;
:&amp;lt;math&amp;gt;c_{i,j} \equiv 1 \pmod{p_j}&amp;lt;/math&amp;gt;. (3)&lt;/div&gt;</summary>
		<author><name>Isaeva</name></author>	</entry>

	<entry>
		<id>https://vscripts.ru/w/%D0%A7%D0%B8%D1%81%D0%BB%D0%B0_%D0%9C%D0%B5%D1%80%D1%81%D0%B5%D0%BD%D0%BD%D0%B0_%D0%B8_%D0%A4%D0%B5%D1%80%D0%BC%D0%B0</id>
		<title>Числа Мерсенна и Ферма</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%A7%D0%B8%D1%81%D0%BB%D0%B0_%D0%9C%D0%B5%D1%80%D1%81%D0%B5%D0%BD%D0%BD%D0%B0_%D0%B8_%D0%A4%D0%B5%D1%80%D0%BC%D0%B0"/>
				<updated>2014-12-25T13:29:44Z</updated>
		
		<summary type="html">&lt;p&gt;Isaeva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;При рассмотрении отдельных классов простых чисел значительный интерес представляет вопрос о простых числах специального вида, например, числа Мерсенна или числа Ферма.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Определение'''&lt;br /&gt;
&lt;br /&gt;
'''Числа Мерсенна''' — числа вида &amp;lt;math&amp;gt;M_n = 2^n - 1&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; — натуральное число.&lt;br /&gt;
Названы в честь французского математика Марена Мерсенна.&lt;br /&gt;
&lt;br /&gt;
Иногда числами Мерсенна называют только числа &amp;lt;math&amp;gt;M_n&amp;lt;/math&amp;gt; с нечетными или простыми индексами ''n''. &lt;br /&gt;
&lt;br /&gt;
Множества простых чисел в этих последовательностях совпадают, а потому понятие ''простого числа Мерсенна'' не зависит от того, как именно определяются числа Мерсенна.&lt;br /&gt;
&lt;br /&gt;
При простых значениях n = p число   может оказаться простым, но может быть составным.&lt;br /&gt;
Например, при &amp;lt;math&amp;gt;p = 2, 3, 5, 7, 13, 17, 19&amp;lt;/math&amp;gt; мы получаем простые числа Мерсенна: &amp;lt;math&amp;gt;3, 7, 31, 127, 8191, 131071&amp;lt;/math&amp;gt;, а при &amp;lt;math&amp;gt;p = 11, 23, 29&amp;lt;/math&amp;gt; числа &amp;lt;math&amp;gt;2^p - 1&amp;lt;/math&amp;gt; - составные. &lt;br /&gt;
&lt;br /&gt;
'''Свойства чисел Мерсенна'''&lt;br /&gt;
&lt;br /&gt;
* Если &amp;lt;math&amp;gt;M_n&amp;lt;/math&amp;gt; является простым, то число ''n'' также простое. Обратное в общем случае неверно, наименьшим контрпримером является &amp;lt;math&amp;gt;M_{11} = 2047 = 23\cdot 89&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* Любой делитель числа &amp;lt;math&amp;gt;M_p&amp;lt;/math&amp;gt; для простого ''p'' имеет вид 2''pk''+1, где ''k'' — натуральное число (следствие малой теоремы Ферма).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Числа Мерсенна получили известность в связи с эффективным тестом простоты Люка — Лемера, благодаря которому простые числа Мерсенна давно удерживают лидерство как самые большие известные простые числа.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Определение'''&lt;br /&gt;
&lt;br /&gt;
'''Числа Ферма''' — числа вида &amp;lt;math&amp;gt;F_n=2^{2^n}+1&amp;lt;/math&amp;gt;, где ''n'' — неотрицательное целое число.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
При &amp;lt;math&amp;gt;n = 0, 1, 2, 3, 4&amp;lt;/math&amp;gt; числа Ферма простые: &amp;lt;math&amp;gt;3, 5, 17, 257, 65537&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Все числа Мерсенна и Ферма – взаимно простые.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Необходимо отметить, что значения чисел Мерсенна и Ферма быстро растут. Это не позволяет только такими числами в качестве модулей СОК.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Операции над числами Мерсенна и Ферма'''&lt;br /&gt;
&lt;br /&gt;
1. Если в качестве модулей &amp;lt;math&amp;gt;p_j&amp;lt;/math&amp;gt; выбраны числа Мерсенна, т.е. числа вида &amp;lt;math&amp;gt;p_j = 2^{e_j} - 1&amp;lt;/math&amp;gt;, для которых значение модуля на единицу меньше очередной степени двойки, это зачастую упрощает выполнение основных арифметических операций, так как выполнять вычисления с числами в таком представлении несколько проще, чем с числами, представленными в обратном коде.&lt;br /&gt;
&lt;br /&gt;
При таком выборе модулей полезно несколько ослабить условие &amp;lt;math&amp;gt;0 \le {\alpha} &amp;lt; p_i&amp;lt;/math&amp;gt; и потребовать только чтобы &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;0 \le {\alpha}_j &amp;lt; 2^{e_j}, a_i \equiv A \pmod{{e_j}-1} &amp;lt;/math&amp;gt;. (1)&lt;br /&gt;
&lt;br /&gt;
Таким образом, значение &amp;lt;math&amp;gt;{\alpha}_j = p_j = 2^{e_j}-1&amp;lt;/math&amp;gt; принимается в качестве оптимального вместо &amp;lt;math&amp;gt;{\alpha}_j = 0&amp;lt;/math&amp;gt;, поскольку это, с одной стороны, не влияет на справедливость китайской теоремы об остатках, а с другой означает, что math&amp;gt;{\alpha}_j&amp;lt;/math&amp;gt; может быть любым math&amp;gt;{\alpha}_j&amp;lt;/math&amp;gt;- битовым двоичным числом. При таком допущении, операции сложения и вычитания по модулю &amp;lt;math&amp;gt;p_j&amp;lt;/math&amp;gt; выполняются следующим образом:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;{\alpha}_j \oplus {\beta}_j  = (({\alpha}_j + {\beta}_j) \pmod{e_j}) + \lfloor ({\alpha}_j + {\beta}_j) \ge 2^{e_j} \rfloor&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;{\alpha}_j \otimes {\beta}_j  = ({\alpha}_j \cdot {\beta}_j \pmod{e_j}) \oplus \lfloor ({\alpha}_j \cdot {\beta}_j) / 2^{e_j} \rfloor&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Здесь &amp;lt;math&amp;gt; \oplus &amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt; \otimes &amp;lt;/math&amp;gt; указывают на действия, которые с учётом условия (1) должны быть выполнены с отдельными компонентами кортежей &lt;br /&gt;
&amp;lt;math&amp;gt;{\alpha}_1, {\alpha}_2, \cdots, {\alpha}_n&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;{\beta}_1, {\beta}_2, \cdots, {\beta}_n&amp;lt;/math&amp;gt; при сложении или умножении соответственно. При вычитании можно пользоваться и соотношением:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;{\alpha}_j \ominus {\beta}_j  = ({\alpha}_j - {\beta}_j \pmod{e_j}) - \left[ {\alpha}_j &amp;lt; {\beta}_j \right]&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Эти операции могут быть эффективно выполнены, даже если &amp;lt;math&amp;gt;2^{e_j}&amp;lt;/math&amp;gt; больше машинного слова компьютера, так как совсем просто вычислить остаток положительного числа по модулю степени 2 или разложить число по степеням 2. Для работы с модулями вида &amp;lt;math&amp;gt;2^{e_j}-1&amp;lt;/math&amp;gt; необходимо знать, при каких условиях число &amp;lt;math&amp;gt;2^{e_j}-1&amp;lt;/math&amp;gt; является взаимно простым с числом &amp;lt;math&amp;gt;2^{\beta}-1&amp;lt;/math&amp;gt;. Для этого существует простое правило:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;(2^e-1,2^{\beta}-1) = 2^{e,\beta}-1&amp;lt;/math&amp;gt;. (2)&lt;br /&gt;
&lt;br /&gt;
Формула (2) утверждает, в частности, что&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;(2^e-1,2^{\beta}-1) = 1 \Leftrightarrow (e,\beta) = 1&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Уравнение (2) следует из алгоритма Евклида и тождества&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;{(2^e-1)} \pmod {2^{\beta}-1} = 2^{e \pmod {b}} - 1&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Поэтому на компьютере с длиной слова &amp;lt;math&amp;gt;2^{32}&amp;lt;/math&amp;gt; можно выбрать&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;p_1 = 2^{32} - 1, p_2 = 2^{31} - 1, p_3 = 2^{29} - 1, p_4 = 2^{27} - 1, p_5 = 2^{25} - 1&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
что обеспечивает эффективность сложения, вычитания и умножения целых чисел в интервале вплоть до &amp;lt;math&amp;gt;p_1 \cdot p_2 \cdot p_3 \cdot p_4 \cdot p_5 &amp;gt; 2^{143}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
2. Прямое преобразование для чисел Мерсенна&lt;br /&gt;
&lt;br /&gt;
Модулярное представление &amp;lt;math&amp;gt;({\alpha}_1, {\alpha}_2, \ldots, {\alpha}_n)&amp;lt;/math&amp;gt; для заданного числа &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt; может быть получено посредством деления &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt; на &amp;lt;math&amp;gt;(p_1, p_2, \ldots, p_n)&amp;lt;/math&amp;gt; с запоминанием остатков. В случае, когда &amp;lt;math&amp;gt;A = {({\nu}_k, {\nu}_{k-1}, \ldots, {\nu}_0)}_b&amp;lt;/math&amp;gt;, возможно применение более подходящего способа, который состоит в том, чтобы, используя СОК, вычислить полином &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;(\ldots ({\nu}_k \cdot b + {\nu}_{k-1}) \cdot b + \ldots ) b + {\nu}_0)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Если основание &amp;lt;math&amp;gt;b = 2&amp;lt;/math&amp;gt; и модули &amp;lt;math&amp;gt;p_j&amp;lt;/math&amp;gt; имеют вид &amp;lt;math&amp;gt;2^{e_j}-1&amp;lt;/math&amp;gt;, оба подхода сводятся к совсем простому способу. &lt;br /&gt;
&lt;br /&gt;
Рассмотрим двоичные представления числа &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt; с блоками по &amp;lt;math&amp;gt;{e_j}&amp;lt;/math&amp;gt; бит:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;A = a_t \cdot N^t + a_{t-1} \cdot N^{t-1} + \ldots + a_1 \cdot N + a_0&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
где &amp;lt;math&amp;gt;N = 2^{e_j}&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;0 \le a_j &amp;lt; 2^{e_j}&amp;lt;/math&amp;gt; при &amp;lt;math&amp;gt;0 \le k \le t &amp;lt;/math&amp;gt;.&lt;/div&gt;</summary>
		<author><name>Isaeva</name></author>	</entry>

	<entry>
		<id>https://vscripts.ru/w/%D0%A7%D0%B8%D1%81%D0%BB%D0%B0_%D0%9C%D0%B5%D1%80%D1%81%D0%B5%D0%BD%D0%BD%D0%B0_%D0%B8_%D0%A4%D0%B5%D1%80%D0%BC%D0%B0</id>
		<title>Числа Мерсенна и Ферма</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%A7%D0%B8%D1%81%D0%BB%D0%B0_%D0%9C%D0%B5%D1%80%D1%81%D0%B5%D0%BD%D0%BD%D0%B0_%D0%B8_%D0%A4%D0%B5%D1%80%D0%BC%D0%B0"/>
				<updated>2014-12-25T12:40:02Z</updated>
		
		<summary type="html">&lt;p&gt;Isaeva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;При рассмотрении отдельных классов простых чисел значительный интерес представляет вопрос о простых числах специального вида, например, числа Мерсенна или числа Ферма.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Определение'''&lt;br /&gt;
&lt;br /&gt;
'''Числа Мерсенна''' — числа вида &amp;lt;math&amp;gt;M_n = 2^n - 1&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; — натуральное число.&lt;br /&gt;
Названы в честь французского математика Марена Мерсенна.&lt;br /&gt;
&lt;br /&gt;
Иногда числами Мерсенна называют только числа &amp;lt;math&amp;gt;M_n&amp;lt;/math&amp;gt; с нечетными или простыми индексами ''n''. &lt;br /&gt;
&lt;br /&gt;
Множества простых чисел в этих последовательностях совпадают, а потому понятие ''простого числа Мерсенна'' не зависит от того, как именно определяются числа Мерсенна.&lt;br /&gt;
&lt;br /&gt;
При простых значениях n = p число   может оказаться простым, но может быть составным.&lt;br /&gt;
Например, при &amp;lt;math&amp;gt;p = 2, 3, 5, 7, 13, 17, 19&amp;lt;/math&amp;gt; мы получаем простые числа Мерсенна: &amp;lt;math&amp;gt;3, 7, 31, 127, 8191, 131071&amp;lt;/math&amp;gt;, а при &amp;lt;math&amp;gt;p = 11, 23, 29&amp;lt;/math&amp;gt; числа &amp;lt;math&amp;gt;2^p - 1&amp;lt;/math&amp;gt; - составные. &lt;br /&gt;
&lt;br /&gt;
'''Свойства чисел Мерсенна'''&lt;br /&gt;
&lt;br /&gt;
* Если &amp;lt;math&amp;gt;M_n&amp;lt;/math&amp;gt; является простым, то число ''n'' также простое. Обратное в общем случае неверно, наименьшим контрпримером является &amp;lt;math&amp;gt;M_{11} = 2047 = 23\cdot 89&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* Любой делитель числа &amp;lt;math&amp;gt;M_p&amp;lt;/math&amp;gt; для простого ''p'' имеет вид 2''pk''+1, где ''k'' — натуральное число (следствие малой теоремы Ферма).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Числа Мерсенна получили известность в связи с эффективным тестом простоты Люка — Лемера, благодаря которому простые числа Мерсенна давно удерживают лидерство как самые большие известные простые числа.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Определение'''&lt;br /&gt;
&lt;br /&gt;
'''Числа Ферма''' — числа вида &amp;lt;math&amp;gt;F_n=2^{2^n}+1&amp;lt;/math&amp;gt;, где ''n'' — неотрицательное целое число.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
При &amp;lt;math&amp;gt;n = 0, 1, 2, 3, 4&amp;lt;/math&amp;gt; числа Ферма простые: &amp;lt;math&amp;gt;3, 5, 17, 257, 65537&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Все числа Мерсенна и Ферма – взаимно простые.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Необходимо отметить, что значения чисел Мерсенна и Ферма быстро растут. Это не позволяет только такими числами в качестве модулей СОК.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Операции над числами Мерсенна и Ферма'''&lt;br /&gt;
&lt;br /&gt;
1. Если в качестве модулей &amp;lt;math&amp;gt;p_j&amp;lt;/math&amp;gt; выбраны числа Мерсенна, т.е. числа вида &amp;lt;math&amp;gt;p_j = 2^{e_j} - 1&amp;lt;/math&amp;gt;, для которых значение модуля на единицу меньше очередной степени двойки, это зачастую упрощает выполнение основных арифметических операций, так как выполнять вычисления с числами в таком представлении несколько проще, чем с числами, представленными в обратном коде.&lt;br /&gt;
&lt;br /&gt;
При таком выборе модулей полезно несколько ослабить условие &amp;lt;math&amp;gt;0 \le {\alpha} &amp;lt; p_i&amp;lt;/math&amp;gt; и потребовать только чтобы &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;0 \le {\alpha}_j &amp;lt; 2^{e_j}, a_i \equiv A \pmod{{e_j}-1} &amp;lt;/math&amp;gt;. (1)&lt;br /&gt;
&lt;br /&gt;
Таким образом, значение &amp;lt;math&amp;gt;{\alpha}_j = p_j = 2^{e_j}-1&amp;lt;/math&amp;gt; принимается в качестве оптимального вместо &amp;lt;math&amp;gt;{\alpha}_j = 0&amp;lt;/math&amp;gt;, поскольку это, с одной стороны, не влияет на справедливость китайской теоремы об остатках, а с другой означает, что math&amp;gt;{\alpha}_j&amp;lt;/math&amp;gt; может быть любым math&amp;gt;{\alpha}_j&amp;lt;/math&amp;gt;- битовым двоичным числом. При таком допущении, операции сложения и вычитания по модулю &amp;lt;math&amp;gt;p_j&amp;lt;/math&amp;gt; выполняются следующим образом:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;{\alpha}_j \oplus {\beta}_j  = (({\alpha}_j + {\beta}_j) \pmod{e_j}) + \lfloor ({\alpha}_j + {\beta}_j) \ge 2^{e_j} \rfloor&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;{\alpha}_j \otimes {\beta}_j  = ({\alpha}_j \cdot {\beta}_j \pmod{e_j}) \oplus \lfloor ({\alpha}_j \cdot {\beta}_j) / 2^{e_j} \rfloor&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Здесь &amp;lt;math&amp;gt; \oplus &amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt; \otimes &amp;lt;/math&amp;gt; указывают на действия, которые с учётом условия (1) должны быть выполнены с отдельными компонентами кортежей &lt;br /&gt;
&amp;lt;math&amp;gt;{\alpha}_1, {\alpha}_2, \cdots, {\alpha}_n&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;{\beta}_1, {\beta}_2, \cdots, {\beta}_n&amp;lt;/math&amp;gt; при сложении или умножении соответственно. При вычитании можно пользоваться и соотношением:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;{\alpha}_j \ominus {\beta}_j  = ({\alpha}_j - {\beta}_j \pmod{e_j}) - \left[ {\alpha}_j &amp;lt; {\beta}_j \right]&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Эти операции могут быть эффективно выполнены, даже если &amp;lt;math&amp;gt;2^{e_j}&amp;lt;/math&amp;gt; больше машинного слова компьютера, так как совсем просто вычислить остаток положительного числа по модулю степени 2 или разложить число по степеням 2. Для работы с модулями вида &amp;lt;math&amp;gt;2^{e_j}-1&amp;lt;/math&amp;gt; необходимо знать, при каких условиях число &amp;lt;math&amp;gt;2^{e_j}-1&amp;lt;/math&amp;gt; является взаимно простым с числом &amp;lt;math&amp;gt;2^{\beta}-1&amp;lt;/math&amp;gt;. Для этого существует простое правило:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;(2^e-1,2^{\beta}-1) = 2^{e,\beta}-1&amp;lt;/math&amp;gt;. (2)&lt;br /&gt;
&lt;br /&gt;
Формула (2) утверждает, в частности, что&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;(2^e-1,2^{\beta}-1) = 1 \Leftrightarrow (e,\beta) = 1&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Уравнение (2) следует из алгоритма Евклида и тождества&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;{(2^e-1)} \pmod {2^{\beta}-1} = 2^{e \pmod {b}} - 1&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Поэтому на компьютере с длиной слова &amp;lt;math&amp;gt;2^{32}&amp;lt;/math&amp;gt; можно выбрать&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;p_1 = 2^{32} - 1, p_2 = 2^{31} - 1, p_3 = 2^{29} - 1, p_4 = 2^{27} - 1, p_5 = 2^{25} - 1&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
что обеспечивает эффективность сложения, вычитания и умножения целых чисел в интервале вплоть до &amp;lt;math&amp;gt;p_1 \cdot p_2 \cdot p_3 \cdot p_4 \cdot p_5 &amp;gt; 2^{143}&amp;lt;/math&amp;gt;.&lt;/div&gt;</summary>
		<author><name>Isaeva</name></author>	</entry>

	<entry>
		<id>https://vscripts.ru/w/%D0%A7%D0%B8%D1%81%D0%BB%D0%B0_%D0%9C%D0%B5%D1%80%D1%81%D0%B5%D0%BD%D0%BD%D0%B0_%D0%B8_%D0%A4%D0%B5%D1%80%D0%BC%D0%B0</id>
		<title>Числа Мерсенна и Ферма</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%A7%D0%B8%D1%81%D0%BB%D0%B0_%D0%9C%D0%B5%D1%80%D1%81%D0%B5%D0%BD%D0%BD%D0%B0_%D0%B8_%D0%A4%D0%B5%D1%80%D0%BC%D0%B0"/>
				<updated>2014-12-25T10:23:57Z</updated>
		
		<summary type="html">&lt;p&gt;Isaeva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;При рассмотрении отдельных классов простых чисел значительный интерес представляет вопрос о простых числах специального вида, например, числа Мерсенна или числа Ферма.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Определение'''&lt;br /&gt;
&lt;br /&gt;
'''Числа Мерсенна''' — числа вида &amp;lt;math&amp;gt;M_n = 2^n - 1&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; — натуральное число.&lt;br /&gt;
Названы в честь французского математика Марена Мерсенна.&lt;br /&gt;
&lt;br /&gt;
Иногда числами Мерсенна называют только числа &amp;lt;math&amp;gt;M_n&amp;lt;/math&amp;gt; с нечетными или простыми индексами ''n''. &lt;br /&gt;
&lt;br /&gt;
Множества простых чисел в этих последовательностях совпадают, а потому понятие ''простого числа Мерсенна'' не зависит от того, как именно определяются числа Мерсенна.&lt;br /&gt;
&lt;br /&gt;
При простых значениях n = p число   может оказаться простым, но может быть составным.&lt;br /&gt;
Например, при &amp;lt;math&amp;gt;p = 2, 3, 5, 7, 13, 17, 19&amp;lt;/math&amp;gt; мы получаем простые числа Мерсенна: &amp;lt;math&amp;gt;3, 7, 31, 127, 8191, 131071&amp;lt;/math&amp;gt;, а при &amp;lt;math&amp;gt;p = 11, 23, 29&amp;lt;/math&amp;gt; числа &amp;lt;math&amp;gt;2^p - 1&amp;lt;/math&amp;gt; - составные. &lt;br /&gt;
&lt;br /&gt;
'''Свойства чисел Мерсенна'''&lt;br /&gt;
&lt;br /&gt;
* Если &amp;lt;math&amp;gt;M_n&amp;lt;/math&amp;gt; является простым, то число ''n'' также простое. Обратное в общем случае неверно, наименьшим контрпримером является &amp;lt;math&amp;gt;M_{11} = 2047 = 23\cdot 89&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* Любой делитель числа &amp;lt;math&amp;gt;M_p&amp;lt;/math&amp;gt; для простого ''p'' имеет вид 2''pk''+1, где ''k'' — натуральное число (следствие малой теоремы Ферма).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Числа Мерсенна получили известность в связи с эффективным тестом простоты Люка — Лемера, благодаря которому простые числа Мерсенна давно удерживают лидерство как самые большие известные простые числа.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Определение'''&lt;br /&gt;
&lt;br /&gt;
'''Числа Ферма''' — числа вида &amp;lt;math&amp;gt;F_n=2^{2^n}+1&amp;lt;/math&amp;gt;, где ''n'' — неотрицательное целое число.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
При &amp;lt;math&amp;gt;n = 0, 1, 2, 3, 4&amp;lt;/math&amp;gt; числа Ферма простые: &amp;lt;math&amp;gt;3, 5, 17, 257, 65537&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Все числа Мерсенна и Ферма – взаимно простые.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Необходимо отметить, что значения чисел Мерсенна и Ферма быстро растут. Это не позволяет только такими числами в качестве модулей СОК.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Операции над числами Мерсенна и Ферма'''&lt;br /&gt;
&lt;br /&gt;
1. Если в качестве модулей &amp;lt;math&amp;gt;p_j&amp;lt;/math&amp;gt; выбраны числа Мерсенна, т.е. числа вида &amp;lt;math&amp;gt;p_j = 2^{e_j} - 1&amp;lt;/math&amp;gt;, для которых значение модуля на единицу меньше очередной степени двойки, это зачастую упрощает выполнение основных арифметических операций, так как выполнять вычисления с числами в таком представлении несколько проще, чем с числами, представленными в обратном коде.&lt;br /&gt;
&lt;br /&gt;
При таком выборе модулей полезно несколько ослабить условие &amp;lt;math&amp;gt;0 \le {\alpha} &amp;lt; p_i&amp;lt;/math&amp;gt; и потребовать только чтобы &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;0 \le {\alpha}_j &amp;lt; 2^{e_j}, a_i \equiv A \pmod{{e_j}-1} &amp;lt;/math&amp;gt;. (1)&lt;br /&gt;
&lt;br /&gt;
Таким образом, значение &amp;lt;math&amp;gt;{\alpha}_j = p_j = 2^{e_j}-1&amp;lt;/math&amp;gt; принимается в качестве оптимального вместо &amp;lt;math&amp;gt;{\alpha}_j = 0&amp;lt;/math&amp;gt;, поскольку это, с одной стороны, не влияет на справедливость китайской теоремы об остатках, а с другой означает, что math&amp;gt;{\alpha}_j&amp;lt;/math&amp;gt; может быть любым math&amp;gt;{\alpha}_j&amp;lt;/math&amp;gt;- битовым двоичным числом. При таком допущении, операции сложения и вычитания по модулю &amp;lt;math&amp;gt;p_j&amp;lt;/math&amp;gt; выполняются следующим образом:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;{\alpha}_j \oplus {\beta}_j  = (({\alpha}_j + {\beta}_j) \pmod{e_j}) + \lfloor ({\alpha}_j + {\beta}_j) \ge 2^{e_j} \rfloor&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;{\alpha}_j \otimes {\beta}_j  = ({\alpha}_j \cdot {\beta}_j \pmod{e_j}) \oplus \lfloor ({\alpha}_j \cdot {\beta}_j) / 2^{e_j} \rfloor&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Здесь &amp;lt;math&amp;gt; \oplus &amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt; \otimes &amp;lt;/math&amp;gt; указывают на действия, которые с учётом условия (1) должны быть выполнены с отдельными компонентами кортежей &lt;br /&gt;
&amp;lt;math&amp;gt;{\alpha}_1, {\alpha}_2, \cdots, {\alpha}_n&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;{\beta}_1, {\beta}_2, \cdots, {\beta}_n&amp;lt;/math&amp;gt; при сложении или умножении соответственно. При вычитании можно пользоваться и соотношением:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;{\alpha}_j \ominus {\beta}_j  = ({\alpha}_j - {\beta}_j \pmod{e_j}) - \left[ {\alpha}_j &amp;lt; {\beta}_j \right]&amp;lt;/math&amp;gt;.&lt;/div&gt;</summary>
		<author><name>Isaeva</name></author>	</entry>

	<entry>
		<id>https://vscripts.ru/w/%D0%A7%D0%B8%D1%81%D0%BB%D0%B0_%D0%9C%D0%B5%D1%80%D1%81%D0%B5%D0%BD%D0%BD%D0%B0_%D0%B8_%D0%A4%D0%B5%D1%80%D0%BC%D0%B0</id>
		<title>Числа Мерсенна и Ферма</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%A7%D0%B8%D1%81%D0%BB%D0%B0_%D0%9C%D0%B5%D1%80%D1%81%D0%B5%D0%BD%D0%BD%D0%B0_%D0%B8_%D0%A4%D0%B5%D1%80%D0%BC%D0%B0"/>
				<updated>2014-12-25T10:22:53Z</updated>
		
		<summary type="html">&lt;p&gt;Isaeva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;При рассмотрении отдельных классов простых чисел значительный интерес представляет вопрос о простых числах специального вида, например, числа Мерсенна или числа Ферма.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Определение'''&lt;br /&gt;
&lt;br /&gt;
'''Числа Мерсенна''' — числа вида &amp;lt;math&amp;gt;M_n = 2^n - 1&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; — натуральное число.&lt;br /&gt;
Названы в честь французского математика Марена Мерсенна.&lt;br /&gt;
&lt;br /&gt;
Иногда числами Мерсенна называют только числа &amp;lt;math&amp;gt;M_n&amp;lt;/math&amp;gt; с нечетными или простыми индексами ''n''. &lt;br /&gt;
&lt;br /&gt;
Множества простых чисел в этих последовательностях совпадают, а потому понятие ''простого числа Мерсенна'' не зависит от того, как именно определяются числа Мерсенна.&lt;br /&gt;
&lt;br /&gt;
При простых значениях n = p число   может оказаться простым, но может быть составным.&lt;br /&gt;
Например, при &amp;lt;math&amp;gt;p = 2, 3, 5, 7, 13, 17, 19&amp;lt;/math&amp;gt; мы получаем простые числа Мерсенна: &amp;lt;math&amp;gt;3, 7, 31, 127, 8191, 131071&amp;lt;/math&amp;gt;, а при &amp;lt;math&amp;gt;p = 11, 23, 29&amp;lt;/math&amp;gt; числа &amp;lt;math&amp;gt;2^p - 1&amp;lt;/math&amp;gt; - составные. &lt;br /&gt;
&lt;br /&gt;
'''Свойства чисел Мерсенна'''&lt;br /&gt;
&lt;br /&gt;
* Если &amp;lt;math&amp;gt;M_n&amp;lt;/math&amp;gt; является простым, то число ''n'' также простое. Обратное в общем случае неверно, наименьшим контрпримером является &amp;lt;math&amp;gt;M_{11} = 2047 = 23\cdot 89&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* Любой делитель числа &amp;lt;math&amp;gt;M_p&amp;lt;/math&amp;gt; для простого ''p'' имеет вид 2''pk''+1, где ''k'' — натуральное число (следствие малой теоремы Ферма).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Числа Мерсенна получили известность в связи с эффективным тестом простоты Люка — Лемера, благодаря которому простые числа Мерсенна давно удерживают лидерство как самые большие известные простые числа.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Определение'''&lt;br /&gt;
&lt;br /&gt;
'''Числа Ферма''' — числа вида &amp;lt;math&amp;gt;F_n=2^{2^n}+1&amp;lt;/math&amp;gt;, где ''n'' — неотрицательное целое число.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
При &amp;lt;math&amp;gt;n = 0, 1, 2, 3, 4&amp;lt;/math&amp;gt; числа Ферма простые: &amp;lt;math&amp;gt;3, 5, 17, 257, 65537&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Все числа Мерсенна и Ферма – взаимно простые.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Необходимо отметить, что значения чисел Мерсенна и Ферма быстро растут. Это не позволяет только такими числами в качестве модулей СОК.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Операции над числами Мерсенна и Ферма'''&lt;br /&gt;
&lt;br /&gt;
1. Если в качестве модулей &amp;lt;math&amp;gt;p_j&amp;lt;/math&amp;gt; выбраны числа Мерсенна, т.е. числа вида &amp;lt;math&amp;gt;p_j = 2^{e_j} - 1&amp;lt;/math&amp;gt;, для которых значение модуля на единицу меньше очередной степени двойки, это зачастую упрощает выполнение основных арифметических операций, так как выполнять вычисления с числами в таком представлении несколько проще, чем с числами, представленными в обратном коде.&lt;br /&gt;
&lt;br /&gt;
При таком выборе модулей полезно несколько ослабить условие &amp;lt;math&amp;gt;0 \le {\alpha} &amp;lt; p_i&amp;lt;/math&amp;gt; и потребовать только чтобы &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;0 \le {\alpha}_j &amp;lt; 2^{e_j}, a_i \equiv A \pmod{{e_j}-1} &amp;lt;/math&amp;gt;. (1)&lt;br /&gt;
&lt;br /&gt;
Таким образом, значение &amp;lt;math&amp;gt;{\alpha}_j = p_j = 2^{e_j}-1&amp;lt;/math&amp;gt; принимается в качестве оптимального вместо &amp;lt;math&amp;gt;{\alpha}_j = 0&amp;lt;/math&amp;gt;, поскольку это, с одной стороны, не влияет на справедливость китайской теоремы об остатках, а с другой означает, что math&amp;gt;{\alpha}_j&amp;lt;/math&amp;gt; может быть любым math&amp;gt;{\alpha}_j&amp;lt;/math&amp;gt;- битовым двоичным числом. При таком допущении, операции сложения и вычитания по модулю &amp;lt;math&amp;gt;p_j&amp;lt;/math&amp;gt; выполняются следующим образом:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;{\alpha}_j \oplus {\beta}_j  = (({\alpha}_j + {\beta}_j) \pmod{e_j}) + \lfloor ({\alpha}_j + {\beta}_j) \ge 2^{e_j} \rfloor&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;{\alpha}_j \otimes {\beta}_j  = ({\alpha}_j \cdot {\beta}_j \pmod{e_j}) \oplus \lfloor ({\alpha}_j \cdot {\beta}_j) / 2^{e_j} \rfloor&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Здесь &amp;lt;math&amp;gt; \oplus &amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt; \otimes &amp;lt;/math&amp;gt; указывают на действия, которые с учётом условия (1) должны быть выполнены с отдельными компонентами кортежей &lt;br /&gt;
&amp;lt;math&amp;gt;{\alpha}_1, {\alpha}_2, \cdots, {\alpha}_n&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;{\beta}_1, {\beta}_2, \cdots, {\beta}_n&amp;lt;/math&amp;gt; при сложении или умножении соответственно. При вычитании можно пользоваться и соотношением:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;{\alpha}_j \ominus {\beta}_j  = ({\alpha}_j - {\beta}_j \pmod{e_j}) \oplus \left[ {\alpha}_j &amp;lt; {\beta}_j \right]&amp;lt;/math&amp;gt;.&lt;/div&gt;</summary>
		<author><name>Isaeva</name></author>	</entry>

	<entry>
		<id>https://vscripts.ru/w/%D0%A7%D0%B8%D1%81%D0%BB%D0%B0_%D0%9C%D0%B5%D1%80%D1%81%D0%B5%D0%BD%D0%BD%D0%B0_%D0%B8_%D0%A4%D0%B5%D1%80%D0%BC%D0%B0</id>
		<title>Числа Мерсенна и Ферма</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%A7%D0%B8%D1%81%D0%BB%D0%B0_%D0%9C%D0%B5%D1%80%D1%81%D0%B5%D0%BD%D0%BD%D0%B0_%D0%B8_%D0%A4%D0%B5%D1%80%D0%BC%D0%B0"/>
				<updated>2014-12-25T10:10:59Z</updated>
		
		<summary type="html">&lt;p&gt;Isaeva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;При рассмотрении отдельных классов простых чисел значительный интерес представляет вопрос о простых числах специального вида, например, числа Мерсенна или числа Ферма.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Определение'''&lt;br /&gt;
&lt;br /&gt;
'''Числа Мерсенна''' — числа вида &amp;lt;math&amp;gt;M_n = 2^n - 1&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; — натуральное число.&lt;br /&gt;
Названы в честь французского математика Марена Мерсенна.&lt;br /&gt;
&lt;br /&gt;
Иногда числами Мерсенна называют только числа &amp;lt;math&amp;gt;M_n&amp;lt;/math&amp;gt; с нечетными или простыми индексами ''n''. &lt;br /&gt;
&lt;br /&gt;
Множества простых чисел в этих последовательностях совпадают, а потому понятие ''простого числа Мерсенна'' не зависит от того, как именно определяются числа Мерсенна.&lt;br /&gt;
&lt;br /&gt;
При простых значениях n = p число   может оказаться простым, но может быть составным.&lt;br /&gt;
Например, при &amp;lt;math&amp;gt;p = 2, 3, 5, 7, 13, 17, 19&amp;lt;/math&amp;gt; мы получаем простые числа Мерсенна: &amp;lt;math&amp;gt;3, 7, 31, 127, 8191, 131071&amp;lt;/math&amp;gt;, а при &amp;lt;math&amp;gt;p = 11, 23, 29&amp;lt;/math&amp;gt; числа &amp;lt;math&amp;gt;2^p - 1&amp;lt;/math&amp;gt; - составные. &lt;br /&gt;
&lt;br /&gt;
'''Свойства чисел Мерсенна'''&lt;br /&gt;
&lt;br /&gt;
* Если &amp;lt;math&amp;gt;M_n&amp;lt;/math&amp;gt; является простым, то число ''n'' также простое. Обратное в общем случае неверно, наименьшим контрпримером является &amp;lt;math&amp;gt;M_{11} = 2047 = 23\cdot 89&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* Любой делитель числа &amp;lt;math&amp;gt;M_p&amp;lt;/math&amp;gt; для простого ''p'' имеет вид 2''pk''+1, где ''k'' — натуральное число (следствие малой теоремы Ферма).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Числа Мерсенна получили известность в связи с эффективным тестом простоты Люка — Лемера, благодаря которому простые числа Мерсенна давно удерживают лидерство как самые большие известные простые числа.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Определение'''&lt;br /&gt;
&lt;br /&gt;
'''Числа Ферма''' — числа вида &amp;lt;math&amp;gt;F_n=2^{2^n}+1&amp;lt;/math&amp;gt;, где ''n'' — неотрицательное целое число.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
При &amp;lt;math&amp;gt;n = 0, 1, 2, 3, 4&amp;lt;/math&amp;gt; числа Ферма простые: &amp;lt;math&amp;gt;3, 5, 17, 257, 65537&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Все числа Мерсенна и Ферма – взаимно простые.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Необходимо отметить, что значения чисел Мерсенна и Ферма быстро растут. Это не позволяет только такими числами в качестве модулей СОК.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Операции над числами Мерсенна и Ферма'''&lt;br /&gt;
&lt;br /&gt;
1. Если в качестве модулей &amp;lt;math&amp;gt;p_j&amp;lt;/math&amp;gt; выбраны числа Мерсенна, т.е. числа вида &amp;lt;math&amp;gt;p_j = 2^{e_j} - 1&amp;lt;/math&amp;gt;, для которых значение модуля на единицу меньше очередной степени двойки, это зачастую упрощает выполнение основных арифметических операций, так как выполнять вычисления с числами в таком представлении несколько проще, чем с числами, представленными в обратном коде.&lt;br /&gt;
&lt;br /&gt;
При таком выборе модулей полезно несколько ослабить условие &amp;lt;math&amp;gt;0 \le {\alpha} &amp;lt; p_i&amp;lt;/math&amp;gt; и потребовать только чтобы &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;0 \le {\alpha}_j &amp;lt; 2^{e_j}, a_i \equiv A \pmod{{e_j}-1} &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Таким образом, значение &amp;lt;math&amp;gt;{\alpha}_j = p_j = 2^{e_j}-1&amp;lt;/math&amp;gt; принимается в качестве оптимального вместо &amp;lt;math&amp;gt;{\alpha}_j = 0&amp;lt;/math&amp;gt;, поскольку это, с одной стороны, не влияет на справедливость китайской теоремы об остатках, а с другой означает, что math&amp;gt;{\alpha}_j&amp;lt;/math&amp;gt; может быть любым math&amp;gt;{\alpha}_j&amp;lt;/math&amp;gt;- битовым двоичным числом. При таком допущении, операции сложения и вычитания по модулю   выполняются следующим образом:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;{\alpha}_j \oplus {\beta}_j  = (({\alpha}_j + {\beta}_j) \pmod{e_j}) + \lfloor ({\alpha}_j + {\beta}_j) \ge 2^{e_j} \rfloor&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;{\alpha}_j \otimes {\beta}_j  = ({\alpha}_j \cdot {\beta}_j \pmod{e_j}) \oplus \lfloor ({\alpha}_j \cdot {\beta}_j) / 2^{e_j} \rfloor&amp;lt;/math&amp;gt;.&lt;/div&gt;</summary>
		<author><name>Isaeva</name></author>	</entry>

	<entry>
		<id>https://vscripts.ru/w/%D0%A7%D0%B8%D1%81%D0%BB%D0%B0_%D0%9C%D0%B5%D1%80%D1%81%D0%B5%D0%BD%D0%BD%D0%B0_%D0%B8_%D0%A4%D0%B5%D1%80%D0%BC%D0%B0</id>
		<title>Числа Мерсенна и Ферма</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%A7%D0%B8%D1%81%D0%BB%D0%B0_%D0%9C%D0%B5%D1%80%D1%81%D0%B5%D0%BD%D0%BD%D0%B0_%D0%B8_%D0%A4%D0%B5%D1%80%D0%BC%D0%B0"/>
				<updated>2014-12-25T09:18:16Z</updated>
		
		<summary type="html">&lt;p&gt;Isaeva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;При рассмотрении отдельных классов простых чисел значительный интерес представляет вопрос о простых числах специального вида, например, числа Мерсенна или числа Ферма.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Определение'''&lt;br /&gt;
&lt;br /&gt;
'''Числа Мерсенна''' — числа вида &amp;lt;math&amp;gt;M_n = 2^n - 1&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; — натуральное число.&lt;br /&gt;
Названы в честь французского математика Марена Мерсенна.&lt;br /&gt;
&lt;br /&gt;
Иногда числами Мерсенна называют только числа &amp;lt;math&amp;gt;M_n&amp;lt;/math&amp;gt; с нечетными или простыми индексами ''n''. &lt;br /&gt;
&lt;br /&gt;
Множества простых чисел в этих последовательностях совпадают, а потому понятие ''простого числа Мерсенна'' не зависит от того, как именно определяются числа Мерсенна.&lt;br /&gt;
&lt;br /&gt;
При простых значениях n = p число   может оказаться простым, но может быть составным.&lt;br /&gt;
Например, при &amp;lt;math&amp;gt;p = 2, 3, 5, 7, 13, 17, 19&amp;lt;/math&amp;gt; мы получаем простые числа Мерсенна: &amp;lt;math&amp;gt;3, 7, 31, 127, 8191, 131071&amp;lt;/math&amp;gt;, а при &amp;lt;math&amp;gt;p = 11, 23, 29&amp;lt;/math&amp;gt; числа &amp;lt;math&amp;gt;2^p - 1&amp;lt;/math&amp;gt; - составные. &lt;br /&gt;
&lt;br /&gt;
'''Свойства чисел Мерсенна'''&lt;br /&gt;
&lt;br /&gt;
* Если &amp;lt;math&amp;gt;M_n&amp;lt;/math&amp;gt; является простым, то число ''n'' также простое. Обратное в общем случае неверно, наименьшим контрпримером является &amp;lt;math&amp;gt;M_{11} = 2047 = 23\cdot 89&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* Любой делитель числа &amp;lt;math&amp;gt;M_p&amp;lt;/math&amp;gt; для простого ''p'' имеет вид 2''pk''+1, где ''k'' — натуральное число (следствие малой теоремы Ферма).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Числа Мерсенна получили известность в связи с эффективным тестом простоты Люка — Лемера, благодаря которому простые числа Мерсенна давно удерживают лидерство как самые большие известные простые числа.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Определение'''&lt;br /&gt;
&lt;br /&gt;
'''Числа Ферма''' — числа вида &amp;lt;math&amp;gt;F_n=2^{2^n}+1&amp;lt;/math&amp;gt;, где ''n'' — неотрицательное целое число.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
При &amp;lt;math&amp;gt;n = 0, 1, 2, 3, 4&amp;lt;/math&amp;gt; числа Ферма простые: &amp;lt;math&amp;gt;3, 5, 17, 257, 65537&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Все числа Мерсенна и Ферма – взаимно простые.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Необходимо отметить, что значения чисел Мерсенна и Ферма быстро растут. Это не позволяет только такими числами в качестве модулей СОК.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Операции над числами Мерсенна и Ферма'''&lt;/div&gt;</summary>
		<author><name>Isaeva</name></author>	</entry>

	<entry>
		<id>https://vscripts.ru/w/%D0%9F%D1%80%D0%B5%D0%B4%D1%81%D1%82%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%87%D0%B8%D1%81%D0%BB%D0%B0_%D0%B2_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B5_%D0%BE%D1%81%D1%82%D0%B0%D1%82%D0%BE%D1%87%D0%BD%D1%8B%D1%85_%D0%BA%D0%BB%D0%B0%D1%81%D1%81%D0%BE%D0%B2</id>
		<title>Представление числа в системе остаточных классов</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%9F%D1%80%D0%B5%D0%B4%D1%81%D1%82%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%87%D0%B8%D1%81%D0%BB%D0%B0_%D0%B2_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B5_%D0%BE%D1%81%D1%82%D0%B0%D1%82%D0%BE%D1%87%D0%BD%D1%8B%D1%85_%D0%BA%D0%BB%D0%B0%D1%81%D1%81%D0%BE%D0%B2"/>
				<updated>2014-12-17T14:02:23Z</updated>
		
		<summary type="html">&lt;p&gt;Isaeva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Представление чисел в виде набора остатков от деления на выбранные натуральные модули - основания системы называется системой остаточных классов - СОК (residue number system - RNS) или модулярной системой счисления - МСС (modular system).&lt;br /&gt;
&lt;br /&gt;
Такие системы счисления являются непозиционными кодами с параллельной структурой, которые позволяют реализовать идею распараллеливания операций на уровне выполнения элементарных арифметических действий. &lt;br /&gt;
&lt;br /&gt;
Пусть заданы положительные числа&lt;br /&gt;
&amp;lt;math&amp;gt;p_1, p_2,\ldots , p_n&amp;lt;/math&amp;gt;, которые называют основаниями или модулями системы. Обозначим &lt;br /&gt;
&amp;lt;math&amp;gt;p= p_1 \cdot p_2 \cdot \ldots  \cdot p_n&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Эта величина характеризует объём диапазона системы. Под системой остаточных классов понимают такую непозиционную систему счисления, в которой целое неотрицательное число А можно представить в виде набора остатков от деления этого числа на выбранные основания системы, т. е.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;A = a_1, a_2 , \ldots  , a_n&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;a_i = A-[ \frac {A}{p_i}]\cdot p_i, i=1,\ldots ,n&amp;lt;/math&amp;gt; (1).&lt;br /&gt;
&lt;br /&gt;
Возможность такого представления числа определяется [[Теорема о делении с остатком. Алгоритм Евклида|теоремой о делении с остатком в кольце целых чисел]]. &lt;br /&gt;
&lt;br /&gt;
Перевод чисел из ПСС в СОК при помощи выражения (1) связан с реализацией операции деления, поэтому использование данного метода неэффективно. В разделе [[Алгоритмы перехода от позиционного представления к остаткам|Алгоритмы перехода от позиционного представления к остаткам]] рассмотрены эффективные методы перехода к остаткам.&lt;br /&gt;
&lt;br /&gt;
Напомним формулировку теоремы о делении с остатком (в обозначениях этого раздела).&lt;br /&gt;
&lt;br /&gt;
'''Теорема'''&lt;br /&gt;
&lt;br /&gt;
Если&lt;br /&gt;
&amp;lt;math&amp;gt;A\in Z, p\in Z, p\neq 0&amp;lt;/math&amp;gt;,&lt;br /&gt;
то существуют единственные &lt;br /&gt;
&amp;lt;math&amp;gt;q\in Z, a\in Z&amp;lt;/math&amp;gt;,&lt;br /&gt;
такие, что&lt;br /&gt;
&amp;lt;math&amp;gt;A=qp+a, 0 \le a &amp;lt; |p|, q=[\frac {A}{p}]&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Несложно заметить, что каждый остаток &amp;lt;math&amp;gt;a_i&amp;lt;/math&amp;gt; получается независимо от других и содержит информацию обо всём числе.&lt;br /&gt;
Установить взаимно-однозначное соответствие между целыми числами из диапазона &amp;lt;math&amp;gt;[0, P)&amp;lt;/math&amp;gt; и их остатками позволяет китайская теорема об остатках.&lt;br /&gt;
Возможность применения СОК в вычислительных алгоритмах обуславливается наличием определённого изоморфизма между математическими операциями над целыми числами и соответствующими операциями над системой целых неотрицательных остатков по отдельным модулям. Причём сложение, умножение, возведение в целую положительную степень любых целых положительных чисел совершенно идентичны соответствующим операциям, выполняемым над системой остатков.&lt;br /&gt;
&lt;br /&gt;
Пусть операнды &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;B&amp;lt;/math&amp;gt;, а также результаты операций сложения и умножения &amp;lt;math&amp;gt;A+B&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;&amp;lt;/math&amp;gt;A\cdot B&amp;lt;/math&amp;gt; представлены соответственно остатками&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;a_i, b_i, c_i, d_i&amp;lt;/math&amp;gt;&lt;br /&gt;
по основаниям &amp;lt;math&amp;gt;p_i, i=1,|ldots,n&amp;lt;/math&amp;gt;,&lt;br /&gt;
причём оба числа и результаты находятся в диапазоне &amp;lt;math&amp;gt;[0, P)&amp;lt;/math&amp;gt;, то есть&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;A=(a_1, a_2, \ldots , a_n)&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;B=(b_1, b_2, \ldots , b_n)&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;A+B=(c_1, c_2, \ldots , c_n)&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;D=(d_1, d_2, \ldots , d_n)&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
и&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;0\le A&amp;lt;P&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;0\le B&amp;lt;P&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;0\le A+B&amp;lt;P&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;0\le A\cdot B&amp;lt;P&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Эти выражения можно переписать в виде&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;c_i=a_i+b_i\pmod{p_i}&amp;lt;/math&amp;gt;;&lt;br /&gt;
&amp;lt;math&amp;gt;d_i=a_i\cdot b_i\pmod{p_i}&amp;lt;/math&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;c_i=a_i+b_i - [\frac{a_i+b_i}{p_i}]&amp;lt;/math&amp;gt;;&lt;br /&gt;
&amp;lt;math&amp;gt;d_i=a_i\cdot b_i - [\frac{a_i\cdot b_i}{p_i}]&amp;lt;/math&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
Справедливость этих правил выполнения арифметических действий в СОК непосредственно вытекает из свойств сравнения.&lt;br /&gt;
&lt;br /&gt;
Действительно,  равенства можно переписать в виде&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;c_i=A+B - [\frac{A+B}{p_i}], i=1,\ldots ,n&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Из представления &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;B&amp;lt;/math&amp;gt; по теореме о делении с остатком следует, что &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;A=k_i\cdot p_i+a_i&amp;lt;/math&amp;gt;,&lt;br /&gt;
&amp;lt;math&amp;gt;B=l_i\cdot p_i+b_i&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
где &amp;lt;math&amp;gt; i=1,\ldots ,n&amp;lt;/math&amp;gt;, &lt;br /&gt;
&amp;lt;math&amp;gt;k_i\in Z, k_i\ge 0&amp;lt;/math&amp;gt;,&lt;br /&gt;
&amp;lt;math&amp;gt;l_i\in Z, l_i\ge 0&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Тогда &lt;br /&gt;
&amp;lt;math&amp;gt;A+B=(k_i+l_i)\cdot p_i + a_i + b_i&amp;lt;/math&amp;gt;,&lt;br /&gt;
&amp;lt;math&amp;gt;[\frac{A+B}{p_i}]=k_i+l_i + [\frac{a_i + b_i}{p_i}]\cdot p_i&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
Откуда&lt;br /&gt;
&amp;lt;math&amp;gt;c_i = a_i+b_i- [\frac{a_i + b_i}{p_i}]\cdot p_i&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
В случае умножения&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;d_i = a_i\cdot b_i- [\frac{A\cdot B}{p_i}]\cdot p_i&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Тогда&lt;br /&gt;
&amp;lt;math&amp;gt;A\cdot B=k_i\cdot l_i\cdot {p_i}^2 + (a_i\cdot l_i + b_i\cdot k_i)\cdot p_i + a_i\cdot b_i&amp;lt;/math&amp;gt;,&lt;br /&gt;
&amp;lt;math&amp;gt;[\frac{A\cdot B}{p_i}]=k_i\cdot l_i\cdot p_i + a_i\cdot l_i + b_i\cdot k_i + \frac{a_i\cdot b_i}{p_i}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Следовательно,&lt;br /&gt;
&amp;lt;math&amp;gt;d_i = a_i\cdot b_i- [\frac{a_i\cdot b_i}{p_i}]\cdot p_i, (i=1,\ldots , n)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''Примеры'''&lt;br /&gt;
&lt;br /&gt;
Дано:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;p_1=2, p_2=3, p_3=5, p_4=7&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;A=(0,0,3,4), B=(1,1,2,0)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Найти: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;A+B, A-B, A\cdot B&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Решение:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;P=p_1 \cdot p_2 \cdot p_3 \cdot p_4 = 2 \cdot 3 \cdot 4 \cdot 7 = 210&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;A+B = (0, 0, 3, 4) + (1, 1, 2, 0) = (1, 1, 0, 4)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;A\cdot B = (0, 0, 3, 4) \cdot (1, 1, 2, 0) = (0, 0, 1, 0)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;A-B = (0, 0, 3, 4) - (1, 1, 2, 0) = (1, 2, 1, 4)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Выводы'''&lt;br /&gt;
&lt;br /&gt;
В отличие от позиционной системы счисления (ПСС), &lt;br /&gt;
в которой число &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt; представляется в виде&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;A = A_n \cdot N^n + A_{n-1} \cdot N^{n-1} + \ldots + A_0 \cdot N^0 = \sum_{i =  0}^{n} A_i \cdot N^i&amp;lt;/math&amp;gt;,&lt;br /&gt;
где &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; – основание ПСС,&lt;br /&gt;
&lt;br /&gt;
значение числа в модулярном коде не зависит от местоположения каждого разряда в его представлении, а зависит от значения основания соответствующего разряда. Поэтому модулярный код является непозиционным.&lt;br /&gt;
Таким образом, выполнение арифметических операций в модулярном коде производится независимо по каждому из модулей, что и указывает на параллелизм данной системы. Это обстоятельство определяет поразрядное выполнение операций. Это свойство избавит от необходимости «занимать» или «переносить» единицу старшего разряда, что приводит к появлению кодов с параллельной структурой. Это позволяет распараллелить алгоритмы при выполнении арифметических операций.&lt;br /&gt;
&lt;br /&gt;
Итак, операции сложения и умножения над числами, представленными в СОК, сводятся к соответствующим операциям над цифрами этого представления. Это относится и к возведению в степень, к вычислению значений многочлена и т. п. Операция вычитания в СОК заменяется сложением с аддитивной инверсией отрицательного числа. Все эти операции модульные, т. е. не требуют позиционных характеристик обрабатываемых чисел.&lt;br /&gt;
&lt;br /&gt;
Исследования СОК выявили целый ряд её преимуществ.&lt;br /&gt;
&lt;br /&gt;
* Максимальный параллелизм. Для оценки уровня параллелизма системы счисления вводится специальный показатель&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\Pi(\nu) = \frac {n(\nu)}{k} &amp;lt;/math&amp;gt;, &lt;br /&gt;
&lt;br /&gt;
где &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; – длина кода системы, &amp;lt;math&amp;gt;n(\nu)&amp;lt;/math&amp;gt; – количество поразрядных показателей параллелизма &amp;lt;math&amp;gt;{\pi}_1, {\pi}_2, \ldots, {\pi}_k&amp;lt;/math&amp;gt;, не меньших заданного порога &amp;lt;math&amp;gt;\nu : \frac{1}{k} \le \nu \le 1&amp;lt;/math&amp;gt;, причём &amp;lt;math&amp;gt;{\pi}_i=1-\frac{n_i}{k}, i=1,\ldots,k&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;n_i&amp;lt;/math&amp;gt; максимально возможное число пар цифр &amp;lt;math&amp;gt;(x_j, y_j), j=1,2,\ldots,i-1,i+1,\ldots,k&amp;lt;/math&amp;gt;, оказывающих влияние на значение суммы &amp;lt;math&amp;gt;Z=X+Y&amp;lt;/math&amp;gt; в ходе её формирования на языке данного кода. Для СОК показатель параллелизма принимает максимально возможное значение &amp;lt;math&amp;gt;\Pi(1)=1&amp;lt;/math&amp;gt;. Это говорит об отсутствии межразрядных связей в числе, записанном в СОК.&lt;br /&gt;
&lt;br /&gt;
* Малоразрядность остатков. Ввиду малого количества возможных кодовых комбинаций, появляется возможность построения табличной арифметики. При этом большинство операций превращаются в однотактовые, осуществляемые простой выборкой из таблиц. По мере совершенствования технологии производства запоминающих устройств с высокой плотностью записи информации, составляющих техническую систему табличного метода вычислений, интерес к СОК неуклонно возрастает.&lt;br /&gt;
&lt;br /&gt;
* Реализация принципа конвейерной обработки информации. &lt;br /&gt;
&lt;br /&gt;
* Высокая точность, надёжность, способность к самокоррекции. В СОК можно построить непозиционные коды, обнаруживающие и исправляющие ошибки, которые являются полностью арифметическими, то есть в этих кодах информативная и контрольная части равноправны относительно любой операции. Эта особенность предоставляет возможность варьировать корректирующую способность кода за счёт изменения точности вычислений.&lt;br /&gt;
&lt;br /&gt;
Конечно, и эта система не лишена недостатков. К ним относится невозможность визуального сравнения чисел, отсутствие признаков выхода результатов за пределы диапазона, ограниченность действия системы сферой целых положительных чисел, получение во всех случаях точного результата операции, что исключает возможность непосредственного округления результата, а также трудность выполнения немодульных операций. Но они не являются непреодолимыми.&lt;/div&gt;</summary>
		<author><name>Isaeva</name></author>	</entry>

	</feed>