قضیه باقیمانده چینی
قضیه باقیمانده چینی ( به انگلیسی: Chinese remainder theorem )
قضیهای در زمینه نظریه اعداد است و تعمیم آن در جبر نظری بیان میشود.
شرح قضیه
فرم اولیه قضیه در کتاب سان زی سوآنجینگ(孙子算经)(Sun Zi Suanjing) نوشته ریاضیدان چینی سان تزو (Sun Tzu) که بعداً با عنوان ۱۲۴۷ توسط قین جیوشاو (Qin Jiushao) باز نوشت شد گنجانده شده.
فرض کنید n۱، n۲، …، nk اعداد صحیحی باشند که دو به دو نسبت به هم اولند. برای هر سری اعداد صحیح a۱،a۲، …، ak عدد صحیح x وجود دارد بهطوریکه در دستگاه معادلات همنهشتی زیر صدق کند:
علاوه بر این تمام جوابهای x به پیمانه N = n۱n۲…nk همنهشتند. در نتیجه برای همه داریم: اگر و تنها اگر . گاهی اوقات این دستگاه حتی زمانی که همه niها دوبه دو نسبت به هم اول نیستند هم قابل حل است: جواب x وجود دارد اگر و تنها اگر:
در این حالات تمام جوابهای x به پیمانه کوچکترین مضرب مشترک niها همنهشتند. شکلهایی از این قضیه در کتابLiber Abaci از فیبوناچی(Fibonacci) در سال ۱۲۰۲ آمدهاست.
الگوریتمی ساختاری برای یافتن جواب
این الگوریتم قسمتی از اثبات قضیه هم هست زیرا جواب x را برای دستگاه پیدا میکند.
این الگوریتم تنها زمانی که ها دوبه دو نسبت به هم اولند جواب میدهد. در حالی که روش تفریقهای متوالی معمولاً حتی زمانی که پیمانهها دو به دو نسبت به هم اول نیستند هم کاربرد دارد.
فرض کنید جوابی برای دستگاه معادلات زیر وجود دارد.
حاصلضرب تعریف میشود. جواب x به صورت زیر بدست میآید. برای هرi، و نسبت به هم اولند. با استفاده از الگوریتم گسترده اقلیدس(extended Euclidean algorithm) میتوان اعداد و را طوریکه باشد را یافت. با فرض اینکه باشد میتوان به عبارت زیر رسید.
با در نظر گرفتن ، عبارت بالا تضمین میکند که باقیمانده تقسیم آن بر برابر ۱ خواهد بود. از طرفی چون خود این عدد برابر تعریف شدهاست، بر تمام ها مگر بخشپذیر است و داریم:
در نتیجه با استفاده از قوانین ضرب در همنهشتیها، جوابی برای دستگاه معادلات همنهشتی به صورت زیر خواهد بود:
نمونه
پرسشی برای بدست آوردن عدد صحیح x که در دستگاه زیر صدق کند را در نظر بگیرید.
با استفاده از الگوریتم اقلیدس برای ۳و ۴×۵ = ۲۰ داریم (۱۳-) × ۳ + ۲ × ۲۰ = ۱، یعنی e۱ = ۴۰ و برای ۴ و ۳×۵ = ۱۵ بدست میآوریم (۱۱-) × ۴ + ۳ × ۱۵ = ۱ یعنی e۲ = ۴۵. در نهایت برای ۵ و ۳×۴ = ۱۲ الگوریتم اقلیدس نتیجه میدهد۵ × ۵ + (۲-) × ۱۲ = ۱ به این معنا که ''e۳ = −۲۴ است. پس یکی از جوابها برای x عدد ۲ × ۴۰ + ۳ × ۴۵ + ۱ × (۲۴-) = ۱۹۱ است. تمام اعداد صحیح دیگر که به پیمانه ۳ × ۴ × ۵ = ۶۰ با ۱۹۱ همنهشتند هم جواب هستند. یعنی همه آنها با ۱۱ به پیمانه ۶۰ همنهشتند.
نکته: ممکن است اعداد بدست آمده با الگوریتم اقلیدس برای ها متفاوت باشد، اما در جواب نهایی همه مشترکند.
کاربرد
از این قضیه در الگوریتم RSA برای رسیدن به جواب در زمان کمتر استفاده میشود.
برای انجام محاسبات بر روی اعداد بسیار بزرگ از این قضیه استفاده میشود. اعداد که نسبت به هم اولند به عنوان انتخاب میشوند و اعداد بزرگ برای محاسبه به صورت زوج مرتب از ها در میآیند و پس از انجام محاسبات بر روی ها نتیجه به صورت خود عدد درمیآید.
اثبات قضیه
یک طرف قضیه با روشی که برای بدست آوردن جواب ارائه شد اثبات شد. اثبات یکتایی این جواب هم با استفاده از برهان خلف ثابت میشود:
فرض میکنیم که دو جواب صحیح مثبت x و y کوچکتر از N برای دستگاه وجود دارد. بعد ثابت می کنیم که هر کدام از niها تفاضل این دو عدد را می شمارد. نتیجه میشود که N هم تفاضل این دو عدد را می شمارد که این خلاف فرض ما است که دو عدد x و y را بین صفر و N در نظر گرفتیم.
تعمیم
فرض کنید و همچنین اعدادی صحیح باشند که برای هر داریم: . که ب.م.م و است. حال حتماً عدد صحیح وجود دارد بهطوریکه در دستگاه معادلات همنهشتی زیر صدق کند:
منابع
- دانلد کنوت. هنر برنامهنویسی رایانه, Volume 2: Seminumerical Algorithms, Third Edition. Addison-Wesley, 1997. ISBN 0-201-89684-2. 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. ISBN 0-262-03293-7. Section 31.5: The Chinese remainder theorem, pp.873–876.
- Sigler, Laurence E. (trans.) (2002), Fibonacci's Liber Abaci, Springer-Verlag, p. 402–403, ISBN 0-387-95419-8