<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=AnShchurova</id>
	<title>Алговики - Вклад [ru]</title>
	<link rel="self" type="application/atom+xml" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=AnShchurova"/>
	<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/ru/%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/AnShchurova"/>
	<updated>2026-10-23T04:25:32Z</updated>
	<subtitle>Вклад</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:AnShchurova/%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&amp;diff=23375</id>
		<title>Участник:AnShchurova/Китайская теорема об остатках</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:AnShchurova/%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&amp;diff=23375"/>
		<updated>2017-10-23T14:33:20Z</updated>

		<summary type="html">&lt;p&gt;AnShchurova: Новая страница: «== Свойства и структура алгоритма == === Общее описание алгоритма === Китайская теорема об ос…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Свойства и структура алгоритма ==&lt;br /&gt;
=== Общее описание алгоритма ===&lt;br /&gt;
Китайская теорема об остатках и алгоритм, построенный на её основе используется для решения линейной системы сравнений. Она утверждает, что система сравнений с попарно взаимно простыми модулями &amp;lt;math&amp;gt;m_1, m_2, \ldots, m_n&amp;lt;/math&amp;gt;:&lt;br /&gt;
: &amp;lt;math&amp;gt;\begin{cases}&lt;br /&gt;
x \equiv a_1 \pmod {m_1}\\&lt;br /&gt;
x \equiv a_2 \pmod {m_2}\\&lt;br /&gt;
  \ldots \\&lt;br /&gt;
x \equiv a_n \pmod {m_n}&lt;br /&gt;
\end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
всегда разрешима, и её решение единственно по модулю &amp;lt;math&amp;gt;m_1 \cdot m_2 \cdot \cdots \cdot m_n&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Задача, которая ставится в теореме — &#039;&#039;восстановление числа &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; по набору его остатков от деления на некоторые заданные взаимно простые числа &amp;lt;math&amp;gt;a_1, a_2, \dots, a_n&amp;lt;/math&amp;gt;.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Формулировка теоремы:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Рассмотрим систему сравнений:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{cases}&lt;br /&gt;
x \equiv a_1 \pmod {m_1}\\&lt;br /&gt;
x \equiv a_2 \pmod {m_2}\\&lt;br /&gt;
  \ldots \\&lt;br /&gt;
x \equiv a_n \pmod {m_n}&lt;br /&gt;
\end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
,где &amp;lt;math&amp;gt;(m_i,m_j) = 1&amp;lt;/math&amp;gt; при всех &amp;lt;math&amp;gt;m_i ≠ m_j&amp;lt;/math&amp;gt; (т.е. попарно взаимно простые).&lt;br /&gt;
&lt;br /&gt;
Положим &amp;lt;math&amp;gt;M = m_1\cdot  \cdots \cdot m_k;  M_i = M/m_i;  i = 1, \dots , k&amp;lt;/math&amp;gt;. Найдем (с помощью обобщенного алгоритма Евклида) числа &amp;lt;math&amp;gt;b_1, \dots , b_k&amp;lt;/math&amp;gt; такие, что &amp;lt;math&amp;gt;M_i \cdot b_i \equiv 1 \bmod{m_i}; i = 1, \dots , k&amp;lt;/math&amp;gt;. Тогда общее решение системы в целых числах имеет вид  &amp;lt;math&amp;gt; x  \equiv \sum_{i=1}^k M_i a_i b_i \bmod{M}  ,т. е. x = \sum_{i=1}^k M_i a_i b_i + Mt&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;t ∈ Z&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;
Шаг 1. Вычисляем &amp;lt;math&amp;gt;M={\displaystyle\prod_{i=1}^n a_i}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Шаг 2. Для всех &amp;lt;math&amp;gt;i\in \{1, 2, \dots, n\}&amp;lt;/math&amp;gt; находим &amp;lt;math&amp;gt;M_i = \frac M{a_i}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Шаг 3. Находим &amp;lt;math&amp;gt;M_i^{-1}= \frac1{M_i} \bmod{a_i}&amp;lt;/math&amp;gt; (например, используя расширенный алгоритм Евклида).&lt;br /&gt;
&lt;br /&gt;
Шаг 4. Вычисляем искомое значение по формуле &amp;lt;math&amp;gt;x = \sum_{i=1}^n r_i M_i M_i^{-1} \mod M&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Здесь &amp;lt;math&amp;gt;a_1, a_2, \dots, a_n&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;m_1, m_2, \dots, m_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;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_1 = a + b(-q_0)&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;r_2= b - r_1q_1 = a(-q_1)+b(1+q_1q_0)&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;\vdots&amp;lt;/math&amp;gt;&lt;br /&gt;
: &#039;&#039;НОД&#039;&#039; &amp;lt;math&amp;gt; (a,b) = r_n = as + bt&amp;lt;/math&amp;gt;&lt;br /&gt;
Здесь &#039;&#039;s&#039;&#039; и &#039;&#039;t&#039;&#039; целые.&lt;br /&gt;
&lt;br /&gt;
== Литература ==&lt;br /&gt;
* &#039;&#039;Нестеренко А.&#039;&#039; Введение в современную криптографию Теоретико-числовые алгоритмы (2011)&lt;br /&gt;
* &#039;&#039;Василенко О. Н.&#039;&#039; Теоретико-числовые алгоритмы в криптографии (2003)&lt;br /&gt;
* &#039;&#039;Виноградов И. М.&#039;&#039; Основы теории чисел (1952)&lt;br /&gt;
* &#039;&#039;Н. Смарт.&#039;&#039; Криптография. (2005)&lt;/div&gt;</summary>
		<author><name>AnShchurova</name></author>
	</entry>
</feed>