YaChudo

Китайська теорема про остачі

Переглядів: 0. Оновлено 10.10.2026.

У математиці китайська теорема про остачі (або китайська теорема про лишки) стверджує, що якщо відомі залишки від ділення з остачею цілого числа  n {\textstyle n} на декілька цілих чисел, то можна однозначно визначити остачу від ділення  n {\textstyle n} на добуток цих цілих чисел за умови, що дільники є попарно взаємно простими (будь-які два дільники не мають спільних множників, окрім 1).[1]

Оригінальне формулювання Сунь-цзи: x ≡ 2 (mod 3) ≡ 3 (mod 5) ≡ 2 (mod 7) з розв'язком x = 23 + 105k, де k — ціле число

Цю теорему іноді називають теоремою Сунь-цзи. Обидві назви походять від першої відомої згадки в Сунь-цзи Суань-цзин, китайському манускрипті, написаному в період між 3-м та 5-м століттями нашої ери. Перша згадка обмежена таким прикладом:

Якщо остача від ділення  n {\textstyle n} на 3 дорівнює 2, від ділення  n {\textstyle n} на 5 дорівнює 3, а від ділення  n {\textstyle n} на 7 дорівнює 2, то можна визначити остачу від ділення  n {\textstyle n} на 105 (добуток 3, 5, та 7), не знаючи значення  n {\textstyle n} . У цьому прикладі остача дорівнює 23. Крім того, ця остача є єдиним можливим додатним значенням для  n {\textstyle n} менше ніж 105.

Китайська теорема про остачі широко використовується для обчислень з великими цілими числами, тому що дозволяє замінити обчислення, для якого відома межа величини результату, кількома схожими обчисленнями для невеликих цілих чисел.

Китайська теорема про остачі (виражена через рівності за модулем) справджується для кожної області головних ідеалів. Її узагальнили для будь-яких кілець з формулюванням, що використовує двосторонні ідеали.

Історія

Найдавніше відоме формулювання задачі з'явилось у книзі Сунь-цзи Суань-цзин китайського математика Сунь-цзи у 5-му столітті:[2]

Є певні предмети, кількість яких невідома. Якщо порахувати їх по три, то залишаться два предмети, якщо по п'ять — три предмети, якщо по сім — два предмети. Скільки всього предметів?[3]

За сучасними стандартами робота Сунь-цзи не вважалася б теоремою, адже він наводить лише одну конкретну задачу без розв'язку, не кажучи вже про доведення для загального випадку чи алгоритм розв'язання.[4] Алгоритм розв'язання цієї задачі описав Аріабгата у 6-му столітті.[5] Часткові випадки китайської теореми про остачу були відомі Брамагупті (7-е століття) та з'являлися у роботі Фібоначчі Книга абака (1202).[6] Результати були пізніше узагальнені повним розв'язком Да-янь-шу (大衍術) в Математичному трактаті у дев’яти розділах[7], написаному Цінь Цзюшао у 1247 році. На початку 19-го століття трактат був перекладений на англійську мову британським місіонером Олександром Вайлі.[8]

Китайська теорема про остачі з'являється у книзі Гаусса 1801 року Disquisitiones Arithmeticae.[9]

Поняття рівностей за модулем вперше було запропоновано та використано Карлом Фрідріхом Гауссом у книзі Disquisitiones Arithmeticae 1801 року.[10] Гаусс проілюстрував китайську теорему про остачі задачею з календарями, а саме: «знайти роки, які мають певний номер періоду відносно сонячного та місячного циклів та римського індикту».[11] Гаусс ввів метод для розв'язання задачі, який вже використовувався Леонардом Ойлером, але насправді був стародавнім методом, який з'являвся декілька разів.[12]

Твердження

Нехай n 1 , … , n k {\textstyle n_{1},\dots ,n_{k}}  — натуральні числа, більші за 1 (їх часто називають модулями або дільниками). Позначимо добуток  n i {\textstyle n_{i}} як N {\textstyle N} .

Китайська теорема про остачі стверджує, що якщо n i {\textstyle n_{i}} є попарно взаємно простими, і якщо a 1 , … , a k {\textstyle a_{1},\dots ,a_{k}}  — цілі числа такі, що 0 ≤ a i < n i {\textstyle 0\leq a_{i}<n_{i}} для кожного i {\textstyle i} , тоді існує одне й лише одне ціле число x {\textstyle x} таке, що 0 ≤ x < N {\textstyle 0\leq x<N} і залишок від ділення з остачею  x {\textstyle x} на  n i {\textstyle n_{i}} дорівнює a i {\textstyle a_{i}} для кожного  i {\textstyle i} .

Це можна переформулювати у термінах рівностей за модулем: Якщо n i {\textstyle n_{i}} попарно взаємно прості, а також якщо a 1 , … , a k {\textstyle a_{1},\dots ,a_{k}}  — довільні цілі числа, то система

x ≡ a 1 ( mod n 1 ) ,     ⋮ x ≡ a k ( mod n k ) {\displaystyle {\begin{aligned}x&\equiv a_{1}{\pmod {n_{1}}},\\&\ \ \vdots \\x&\equiv a_{k}{\pmod {n_{k}}}\end{aligned}}}

має розв'язок, і будь-які два розв'язки, наприклад, x 1 {\textstyle x_{1}} та x 2 {\textstyle x_{2}} , рівні за модулем  N {\textstyle N} , тобто x 1 ≡ x 2 ( mod N ) {\textstyle x_{1}\equiv x_{2}{\pmod {N}}} .[13]

В абстрактній алгебрі теорему часто формулюють так: якщо n i {\textstyle n_{i}}  — попарно взаємно прості, то відображення

x mod N ↦ ( x mod n 1 , … , x mod n k ) {\displaystyle x{\bmod {N}}\mapsto (x{\bmod {n}}_{1},\dots ,x{\bmod {n}}_{k})}

задає ізоморфізм кілець[14]

Z / N Z ≅ Z / n 1 Z × ⋯ × Z / n k Z {\displaystyle \mathbb {Z} /N\mathbb {Z} \cong \mathbb {Z} /n_{1}\mathbb {Z} \times \cdots \times \mathbb {Z} /n_{k}\mathbb {Z} }

між кільцем цілих чисел за модулем  N {\textstyle N} та прямим добутком кілець цілих чисел за модулем  n i {\textstyle n_{i}} . Це означає, що замість послідовності арифметичних операцій у Z / N Z {\textstyle \mathbb {Z} /N\mathbb {Z} } можна виконати аналогічні обчислення незалежно у кожному Z / n i Z {\textstyle \mathbb {Z} /n_{i}\mathbb {Z} } , а потім отримати результат шляхом застосування ізоморфізму (справа наліво). Це може бути значно швидшим способом, ніж пряме обчислення, якщо N {\textstyle N} та кількість операцій є великими. Цей підхід широко використовується в лінійній алгебрі для цілих та раціональних чисел під назвою багатомодульне обчислення.

Теорему також можна переформулювати у термінах комбінаторики так: нескінченні арифметичні прогресії цілих чисел утворюють сімейство Хеллі.[15]

Доведення

Існування та єдиність розв'язку можна довести незалежно. Однак перший спосіб доведення існування, наведений нижче, використовує цю єдиність.

Єдиність

Припустимо, що x {\textstyle x} та y {\textstyle y} є розв'язками всіх рівностей за модулем. Оскільки x {\textstyle x} та y {\textstyle y} мають однакову остачу при діленні на n i {\textstyle n_{i}} , то їх різниця x − y {\textstyle x-y} кратна кожному з n i {\textstyle n_{i}} . А оскільки n i {\textstyle n_{i}} попарно взаємно прості, то їх добуток N {\textstyle N} також є дільником x − y {\textstyle x-y} , отже, x {\textstyle x} та y {\textstyle y} рівні за модулем N {\textstyle N} . Якщо x {\textstyle x} та y {\textstyle y} мають бути невід'ємними та меншими за N {\textstyle N} (як у першому формулюванні теореми), тоді їхня різниця може кратною N {\textstyle N} тільки за умови, що x = y {\textstyle x=y} .

Існування (перше доведення)

Відображення

x mod N ↦ ( x mod n 1 , … , x mod n k ) {\displaystyle x{\bmod {N}}\mapsto (x{\bmod {n}}_{1},\dots ,x{\bmod {n}}_{k})}

переводить класи рівності за модулем N {\textstyle N} у послідовності класів рівності за модулем n i {\textstyle n_{i}} . Доведення єдиності показує, що це відображення є ін'єкцією. Оскільки область визначення та область значень цього відображення мають однакову кількість елементів, то відображення є сюр'єкцією, що доводить існування розв'язку.

Існування (доведення за побудовою)

Існування може бути встановлене шляхом явної побудови x {\textstyle x} , яку можна розбити на два етапи: спочатку знаходимо розв'язок задачі у випадку з двома модулями, а потім узагальнюємо розв'язок за допомогою індукції за кількістю модулів.[16]

Випадок з двома модулями

Потрібно розв'язати систему:

x ≡ a 1 ( mod n 1 ) x ≡ a 2 ( mod n 2 ) , {\displaystyle {\begin{aligned}x&\equiv a_{1}{\pmod {n_{1}}}\\x&\equiv a_{2}{\pmod {n_{2}}},\end{aligned}}}

де n 1 {\textstyle n_{1}} та n 2 {\textstyle n_{2}} взаємно прості.

Тотожність Безу стверджує існування такої пари цілих чисел m 1 {\textstyle m_{1}} та m 2 {\textstyle m_{2}} , що

m 1 n 1 + m 2 n 2 = 1. {\displaystyle m_{1}n_{1}+m_{2}n_{2}=1.}

Цілі числа m 1 {\textstyle m_{1}} та m 2 {\textstyle m_{2}} можуть бути обчислені за допомогою розширеного алгоритму Евкліда. Запишемо розв'язок у такому вигляді:

x = a 1 m 2 n 2 + a 2 m 1 n 1 . {\displaystyle x=a_{1}m_{2}n_{2}+a_{2}m_{1}n_{1}.}

Справді,

x = a 1 m 2 n 2 + a 2 m 1 n 1 = a 1 ( 1 − m 1 n 1 ) + a 2 m 1 n 1 = a 1 + ( a 2 − a 1 ) m 1 n 1 , {\displaystyle {\begin{aligned}x&=a_{1}m_{2}n_{2}+a_{2}m_{1}n_{1}\\&=a_{1}(1-m_{1}n_{1})+a_{2}m_{1}n_{1}\\&=a_{1}+(a_{2}-a_{1})m_{1}n_{1},\end{aligned}}}

отже, x ≡ a 1 ( mod n 1 ) {\textstyle x\equiv a_{1}{\pmod {n_{1}}}} . Друга рівність за модулем доводиться аналогічно, необхідно лише переставити місцями індекси 1 та 2.

Загальний випадок

Розглянемо послідовність рівностей за модулем:

x ≡ a 1 ( mod n 1 )     ⋮ x ≡ a k ( mod n k ) , {\displaystyle {\begin{aligned}x&\equiv a_{1}{\pmod {n_{1}}}\\&\ \ \vdots \\x&\equiv a_{k}{\pmod {n_{k}}},\end{aligned}}}

де n i {\textstyle n_{i}} попарно взаємно прості. Перші дві рівності мають розв'язок  a 1 , 2 {\textstyle a_{1,2}} за способом з попереднього розділу. Множина розв'язків перших двох рівностей є множиною всіх розв'язків рівності

x ≡ a 1 , 2 ( mod n 1 n 2 ) . {\displaystyle x\equiv a_{1,2}{\pmod {n_{1}n_{2}}}.}

Оскільки інші n i {\textstyle n_{i}} взаємно прості з  n 1 n 2 {\textstyle n_{1}n_{2}} , то розв'язування початкової задачі з  k {\textstyle k} рівностями зводиться до розв'язування аналогічної задачі з  k − 1 {\textstyle k-1} рівностями. Повторюючи ці дії, ітеративно отримуємо розв'язок початкової задачі.

Існування (пряма побудова)

Для побудови розв'язку не обов'язково використовувати індукцію за кількістю модулів, однак така пряма побудова вимагає більше обчислень з великими числами, тому вона менш ефективна та рідше використовується. Тим не менше, інтерполяційний многочлен Лагранжа є частковим випадком цієї побудови, який застосовується до многочленів замість цілих чисел.

Нехай N i = N / n i {\textstyle N_{i}=N/n_{i}}  — добуток усіх модулів, крім одного. Оскільки n i {\textstyle n_{i}} попарно взаємно прості, то N i {\textstyle N_{i}} та n i {\textstyle n_{i}} також взаємно прості, тому можемо застосувати тотожність Безу, отже, існують такі цілі числа M i {\textstyle M_{i}} та m i {\textstyle m_{i}} такі, що

M i N i + m i n i = 1. {\displaystyle M_{i}N_{i}+m_{i}n_{i}=1.}

Розв'язком системи рівностей за модулем є

x = ∑ i = 1 k a i M i N i . {\displaystyle x=\sum _{i=1}^{k}a_{i}M_{i}N_{i}.}

Оскільки N j {\textstyle N_{j}} є добутком n i {\textstyle n_{i}} , i ≠ j {\textstyle i\neq j} , то отримуємо

x ≡ a i M i N i ≡ a i ( 1 − m i n i ) ≡ a i ( mod n i ) , {\displaystyle x\equiv a_{i}M_{i}N_{i}\equiv a_{i}(1-m_{i}n_{i})\equiv a_{i}{\pmod {n_{i}}},}

для кожного i {\textstyle i} .

Алгебраїчна версія

Нехай A , ( B i ) i ∈ I {\displaystyle A,(B_{i})_{i\in I}}  — комутативні кільця з одиницею, ϕ i : A → B i {\displaystyle \phi _{i}\colon A\to B_{i}} сюр'єктивні гомоморфізми, такі що Ker ϕ i + Ker ϕ j = A {\displaystyle \operatorname {Ker} \,\phi _{i}+\operatorname {Ker} \,\phi _{j}=A} для всіх i , j ∈ I {\displaystyle i,j\in I} . Тоді гомоморфізм Φ : A → ∏ i ∈ I B i {\displaystyle \Phi :A\to \prod _{i\in I}B_{i}} , заданий формулою

Φ ( a ) = ( ϕ i ( a ) ) i ∈ I {\displaystyle \Phi (a)=(\phi _{i}(a))_{i\in I}}

є сюр'єктивним. Окрім того, Φ {\displaystyle \Phi } визначає ізоморфізм

A / ( ⋂ i ∈ I Ker ⁡ ϕ i ) ≃ ∏ i ∈ I B i {\displaystyle A/{\biggl (}\bigcap _{i\in I}\operatorname {Ker} \phi _{i}{\biggr )}\simeq \prod _{i\in I}B_{i}} .

Якщо взяти A = Z / ( a 1 ⋅ … ⋅ a n ) Z {\displaystyle A=\mathbb {Z} /(a_{1}\cdot \ldots \cdot a_{n})\mathbb {Z} } , B i = Z / a i Z {\displaystyle B_{i}=\mathbb {Z} /a_{i}\mathbb {Z} } і визначити гомоморфізми наступним чином

ϕ i ( x ) = x mod a i , {\displaystyle \phi _{i}(x)=x\mod a_{i},}

то ми одержуємо арифметичну версію теореми.

Примітки

Див. також

Література

Джерела

Українською

Джерело: стаття у Вікіпедії та історія редагувань (автори).