قضیه باقی‌مانده چینی

در ریاضیات، **قضیه باقیمانده چینی** بیان می‌کند که اگر باقی‌مانده تقسیم اقلیدسی یک عدد صحیح n را بر چند عدد صحیح بدانیم، می‌توانیم باقیمانده تقسیم n را بر حاصل ضرب این اعداد صحیح به‌طور یکتا تعیین کنیم، به شرط آن که مقسوم‌علیه‌ها نسبت به هم اول باشند (هیچ دو مقسوم‌علیه به جز ۱ عامل مشترکی نداشته باشند).

به عنوان مثال، اگر بدانیم که باقیمانده n تقسیم بر ۳ برابر ۲ است، باقیمانده n تقسیم بر ۵ برابر ۳ است و باقیمانده n تقسیم بر ۷ برابر ۲ است، بدون دانستن مقدار n، می‌توانیم تعیین کنیم که باقیمانده n تقسیم بر ۱۰۵ (ضرب ۳، ۵ و ۷) ۲۳ است. مهمتر از همه، این به ما می‌گوید که اگر n عدد طبیعی کمتر از ۱۰۵ باشد، ۲۳ تنها مقدار ممکن n است.

فرم اولیه قضیه در کتاب سان زی سوآنجینگ(孙子算经)(Sun Zi Suanjing) نوشته ریاضی‌دان چینی سون تزو (Sun Tzu) که بعداً در ۱۲۴۷ توسط قین جیوشاو (Qin Jiushao) باز نوشت شد گنجانده شده.

قضیه باقیمانده چینی به‌طور گسترده برای محاسبات با اعداد صحیح بزرگ استفاده می‌شود، زیرا محاسباتی را که برای آن فرد محدودیتی در اندازه خروجی دارد با چندین محاسبات مشابه روی اعداد صحیح کوچک جایگزین می‌کند.

قضیه باقی مانده چینی (بیان شده بر حسب همنهشتی‌ها) در هر حوزه ایده‌آل اصلی صادق است. این قضیه با صورتی شامل ایده‌آل‌های دوطرفه به هر حلقه‌ای تعمیم داده شده‌است.

## تاریخچه

اولین نسخه شناخته شده از این قضیه، به عنوان مسئله ای با اعدادی خاص، در کتاب قرن سوم Sun-tzu Suan-ching توسط ریاضیدان چینی Sun-tzu آمده‌است:چند شی داریم که تعدادشان مشخص نیست. اگر آنها را سه‌تا سه‌تا بشماریم، دو عدد باقی می‌ماند و با پنج، ما سه تا باقی‌مانده خواهیم داشت. برای هفت هم، دو تا باقی می‌ماند. چند شی وجود دارد؟
کارهای سون تزو شامل هیچ الگوریتم یا اثباتی کاملی برای این سؤال نیست. اولین چیزی که بتوان آن را به عنوان یک الگوریتم برای این سؤال شناخت توسط آریابهاتا در قرن ششم ارائه شد. نسخه‌های خاصی از قضیه باقی‌مانده چینی توسط برهماگوپتا (قرن ۷ام) نیز شناخته شده بود که در کتاب Liber Abaci فیبوناچی در ۱۲۰۲ میلادی نیز آورده شده‌اند. در نهایت تعمیم این صورت‌بندی‌ها به اسم *Da-yan-shu* () توسط Ch'in Chiu-shao در *[[:en:Mathematical_Treatise_in_Nine_Sections|Mathematical Treatise in Nine Sections]]* (, *Shu-shu Chiu-chang*) در سال ۱۲۴۷ میلادی منتشر شده‌است که نهایتاً اوایل قرن ۱۹ام میلادی به زبان انگلیسی توسط Alexander Wylie ترجمه شده‌اند.

اولین صورت‌بندی به وسیله همنهشتی‌ها توسط گاوس در *Disquisitiones Arithmeticae*(منتشر شده در ۱۸۰۱ میلادی) استفاده شد است. گاوس قضیه باقیمانده چینی را در مورد مسئله‌ای در مورد تقویم‌ها نشان می‌دهد، یعنی «پیدا کردن سال‌هایی که دارای یک دوره معین نسبت به چرخه خورشیدی و قمری و دوره رومی هستند». گاوس روشی را برای حل مسئله معرفی می‌کند که قبلاً توسط لئونارد اویلر استفاده شده بود اما در واقع یک روش بسیار قدیمی‌تر بود که چندین بار ظاهر شده بود.

## شرح قضیه
فرض کنید *n*۱، *n*۲، …، *n**k* اعداد صحیحی باشند که دو به دو نسبت به هم اولند. برای هر سری اعداد صحیح *a*۱،*a*۲، …، *a**k* عدد صحیح x وجود دارد به‌طوری‌که در دستگاه معادلات همنهشتی زیر صدق کند:

:\begin{align}
 x &\equiv a_1 \pmod{n_1} \\
 x &\equiv a_2 \pmod{n_2} \\
   &\vdots \\
 x &\equiv a_k \pmod{n_k}
\end{align}

علاوه بر این تمام جوابهای x به پیمانه *N* = *n*۱*n*۲…*n**k* همنهشتند. در نتیجه برای همه 1\leq i \leq k داریم: x\equiv y \pmod{n_i} اگر و تنها اگر x \equiv y \pmod{N}.
گاهی اوقات این دستگاه حتی زمانی که همه *n<sub>i</sub>*ها دوبه دو نسبت به هم اول نیستند هم قابل حل است.

فرض کنید \; d_1,d_2, ... ,d_n و همچنین \; a_1,a_2,...,a_n اعدادی صحیح باشند که برای هر \; 0 \le i,j \le n داشته باشیم  \; (d_i,d_j)|a_i-a_j. که  \;(d_i,d_j) ب.م. م \; d_i و \; d_j است. حال حتماً عدد صحیح \; x وجود دارد به‌طوری‌که در دستگاه معادلات همنهشتی زیر صدق کند:

\begin{align}
 x &\equiv a_1 \pmod{d_1} \\
 x &\equiv a_2 \pmod{d_2} \\
   &\vdots \\
 x &\equiv a_k \pmod{d_k}
\end{align}

## روش ساختاری برای یافتن جواب
این الگوریتم قسمتی از اثبات قضیه هم هست زیرا جواب x را برای دستگاه پیدا می‌کند.

این الگوریتم تنها زمانی که n_iها دوبه دو نسبت به هم اولند جواب می‌دهد. در حالی که روش تفریق‌های متوالی معمولاً حتی زمانی که پیمانه‌ها دو به دو نسبت به هم اول نیستند هم کاربرد دارد.

فرض کنید جوابی برای دستگاه معادلات زیر وجود دارد.

:x \equiv a_i \pmod{n_i} \quad\mathrm{for}\; i = 1, \ldots, k.

حاصلضرب  N=n_1n_2\ldots n_k تعریف می‌شود. جواب x به صورت زیر بدست می‌آید. برای هرi, n_i و N/n_i نسبت به هم اولند. با استفاده از الگوریتم گسترده اقلیدس(extended Euclidean algorithm) می‌توان اعداد r_i و s_i را طوری‌که r_in_i + s_iN/n_i = 1 باشد را یافت. با فرض اینکه e_i=s_iN/n_i باشد می‌توان به عبارت زیر رسید.

: r_i n_i + e_i = 1 \,\! 

با در نظر گرفتن e_i، عبارت بالا تضمین می‌کند که باقی‌مانده تقسیم آن بر n_i برابر ۱ خواهد بود. از طرفی چون خود این عدد برابر s_iN/n_i تعریف شده‌است، بر تمام n_jها مگر n_i بخشپذیر است و داریم:

:e_i \equiv 1 \pmod{n_i} \quad \mathrm{and} \quad  e_i \equiv 0 \pmod{n_j} \quad \mathrm{for} ~ i \ne j

در نتیجه با استفاده از قوانین ضرب در همنهشتی‌ها، جوابی برای دستگاه معادلات همنهشتی به صورت زیر خواهد بود:

: x = \sum_{i=1}^k a_i e_i.\! 

## نمونه
پرسشی برای بدست آوردن عدد صحیح x که در دستگاه زیر صدق کند را در نظر بگیرید.

:x \equiv 2 \pmod{3}, \,\! 
:x \equiv 3 \pmod{4}, \,\! 
:x \equiv 1 \pmod{5}. \,\! 

با استفاده از الگوریتم اقلیدس برای ۳و ۴×۵ = ۲۰ داریم (۱۳-) × ۳ + ۲ × ۲۰ = ۱، یعنی *e*۱ = ۴۰ و برای ۴ و ۳×۵ = ۱۵ بدست می‌آوریم (۱۱-) × ۴ + ۳ × ۱۵ = ۱ یعنی *e*۲ = ۴۵. در نهایت برای ۵ و ۳×۴ = ۱۲ الگوریتم اقلیدس نتیجه می‌دهد۵ × ۵ + (۲-) × ۱۲ = ۱ به این معنا که **e*<sub>۳</sub> = −۲۴ است. پس یکی از جوابها برای x عدد ۲ × ۴۰ + ۳ × ۴۵ + ۱ × (۲۴-) = ۱۹۱ است. تمام اعداد صحیح دیگر که به پیمانه ۳ × ۴ × ۵ = ۶۰ با ۱۹۱ همنهشتند هم جواب هستند؛ یعنی همه آن‌ها با ۱۱ به پیمانه ۶۰ [[هم‌نهشتی (نظریه اعداد)|همنهشتند]].

نکته: ممکن است اعداد بدست آمده با الگوریتم اقلیدس برای <math>e_i</math>ها متفاوت باشد، اما در جواب نهایی همه مشترکند.

== کاربرد ==


از این قضیه در [[الگوریتم RSA]] برای رسیدن به جواب در زمان کمتر استفاده می‌شود.

برای انجام محاسبات بر روی اعداد بسیار بزرگ از این قضیه استفاده می‌شود. اعداد که نسبت به هم اولند به عنوان <math>n_i</math> انتخاب می‌شوند و اعداد بزرگ برای محاسبه به صورت [[زوج مرتب]] از <math>a_i</math>ها در می‌آیند و پس از انجام محاسبات بر روی <math>a_i</math>ها نتیجه به صورت خود عدد درمی‌آید.

== تعمیم ==
فرض کنید <math>R</math> یک حلقه باشد و <math>I_1,\cdots,I_n</math> ایده‌آل‌هایی از <math>R</math> باشند که برای هر <math>i\neq j</math> داشته باشیم <math>I_i+I_j=R</math>. اگر <math>b_1,\cdots,b_n</math> عنصرهای دلخواه <math>R</math> باشند آنگاه عنصر <math>b</math> چنان در <math>R</math> موجود است که <math>b-b_i\in R</math> (در واقع <math>b\overset{I_i}{\equiv}b_i</math>). به علاوه اگر <math>c</math> موجود باشد که خاصیت <math>b</math> را داشته‌باشد آنگاه <math>b-c\in \bigcap_{i=1}^n I_i</math> (در واقع <math>b\overset{\bigcap_{i=1}^n I_i}{\equiv}c</math>).

== منابع ==


== منابع ==

* [[دانلد کنوت]]. *هنر برنامه‌نویسی رایانه*, Volume 2: *Seminumerical Algorithms*, Third Edition. Addison-Wesley, 1997. . Section 4.3.2 (pp.286–291), exercise 4.6.2–3 (page 456).
* [[توماس اچ کورمن]]،  [[Charles E. Leiserson]], [[رونالد ریوست]]،  and [[کلیفورد استین]]. *مقدمه‌ای بر الگوریتم‌ها'', Second Edition. MIT Press and McGraw-Hill, 2001. . Section 31.5: The Chinese remainder theorem, pp.873–876.
* 

رده:جبر جابجایی
رده:جبر
رده:حساب پیمانه‌ای
رده:قضیه‌ها در نظریه اعداد
رده:قضیه‌های ریاضی
رده:کشفیات ریاضیاتی چینی
رده:نظریه اعداد