حاسبة الحساب النمطي (Modular Arithmetic)
احسب باقي القسمة a mod n، والجمع النمطي، والضرب النمطي، والقوة (aᵇ mod n) — حساب الساعة بلمح البصر.
1,231 مشاهدة
كيف يعمل الحساب النمطي
يطرح a mod n سؤالاً بسيطًا واحدًا: ما الباقي المتبقي بعد قسمة a على n؟ رسميًا، a mod n = a − n × floor(a ÷ n)، وبحسب الاصطلاح الرياضي تقع النتيجة دائمًا بين 0 و n−1. أسهل طريقة لتخيل ذلك هي وجه الساعة: فالساعات لا تُعد إلى ما لا نهاية، بل تدور من جديد عند 12 (أو 24). لنفترض أن الساعة الآن 15:00 وتريد معرفة الوقت بعد 10 ساعات — لن تحصل على "25:00"، بل تحسب (15 + 10) mod 24 = 1، أي الساعة 01:00 في اليوم التالي. كل قيمة تدور عبر نفس مجموعة "الخانات"، وهذا الدوران هو بالضبط ما يفعله n في a mod n.
توسّع هذه الأداة الفكرة نفسها إلى ثلاث عمليات مترابطة: الجمع النمطي (a + b) mod n، والضرب النمطي (a × b) mod n، والقوة النمطية aᵇ mod n. تبدو العملية الأخيرة بريئة، لكنها العملية الأهم على الإطلاق في علم التشفير الحديث. حسابها بالطريقة الساذجة — رفع a إلى القوة b أولاً ثم أخذ الباقي — سينتج أعدادًا بملايين الخانات في أحجام المفاتيح الواقعية، قبل أن تصل حتى إلى خطوة باقي القسمة. بدلاً من ذلك، تستخدم الأداة خوارزمية التربيع والضرب (square-and-multiply): تُربّع الأساس تكرارًا وتُختزل بباقي القسمة على n في كل خطوة، بحيث لا تتجاوز الأعداد الوسيطة أبدًا حجم n نفسه، مهما كانت b كبيرة. هذا ما يجعل الحصول على نتائج دقيقة ممكنًا حتى مع أسس تبلغ مئات الخانات.
ما يجب أن تعرفه
- التشفير: يعتمد كل من RSA وتبادل مفاتيح Diffie-Hellman على القوة النمطية بأعداد أولية ضخمة جدًا — تشفير رسالة هو في جوهره حساب aᵇ mod n حيث يبلغ طول كل من a وb وn مئات الخانات.
- دوال التجزئة (Hash): تختزل معظم أنظمة التجزئة مدخلاً بحجم عشوائي إلى "حاوية" ذات حجم ثابت باستخدام عملية باقي القسمة، ولهذا يظهر mod في كل مكان: في جداول التجزئة، ومجاميع التحقق (checksums)، ومنطق موازنة الأحمال.
- التقويم والساعات: حسابات أيام الأسبوع، وتحويلات الوقت بين نظامي 12/24 ساعة، ودورات التقويم كلها حساب نمطي متنكر — ومن هنا جاء لقب "حساب الساعة" مباشرة.
- اختلاف اصطلاح الإشارة: تُعرّف الرياضيات a mod n دائمًا بأنه غير سالب، لكن العديد من لغات البرمجة (C وJavaScript وJava) تُعيد بدلاً من ذلك باقيًا بنفس إشارة a، ما قد يُوقع في الخطأ عند ترجمة الصيغ مباشرة إلى الكود.
الأسئلة الشائعة
ما ناتج −7 mod 3؟
تتبع هذه الأداة الاصطلاح الرياضي القائل بأن النتيجة غير سالبة دائمًا: −7 mod 3 = 2 (لأن −7 = −3×3 + 2). بعض لغات البرمجة تُعيد −1 بدلاً من ذلك، لأنها تُعرّف الباقي بحيث يحمل نفس إشارة المقسوم بدلاً من أن يكون موجبًا دائمًا.
أين يُستخدم aᵇ mod n في الحياة الواقعية؟
إنه العملية الأساسية في خوارزمية RSA وتبادل مفاتيح Diffie-Hellman: تشفير رسالة أو الاتفاق على سر مشترك يعني أساسًا حساب قوة نمطية ضخمة، غالبًا بأعداد يبلغ طولها 2048 بت أو أكثر.
لماذا يستخدم مثال الساعة mod 24 وليس mod 12؟
كلاهما صحيح — الساعة ذات 12 ساعة تدور عند mod 12، والساعة ذات 24 ساعة عند mod 24. المقياس n هو ببساطة حجم الدورة التي تهمك؛ اختر اصطلاح الساعة الذي يطابق طريقتك في عدّ الوقت.
هل a mod n هو نفسه القسمة الصحيحة (integer division)؟
هما نصفا العملية الحسابية نفسها. a ÷ n (القسمة الصحيحة) يعطي خارج القسمة — عدد المرات الكاملة التي يدخل فيها n في a — بينما يعطي a mod n الباقي المتبقي. ومعًا، فإن خارج القسمة × n + الباقي يُعيد بناء a دائمًا.
لماذا تكون طريقة التربيع والضرب أسرع من حساب aᵇ مباشرة؟
يضرب رفع القوة المباشر a في نفسه b−1 مرة، وتنفجر قيمة النتيجة الوسيطة في الحجم قبل وقت طويل من إمكانية اختزالها بباقي القسمة على n. أما طريقة التربيع والضرب فتختزل النتيجة بعد كل خطوة تربيع، بحيث لا تتجاوز الأعداد المعنية تقريبًا حجم n — وهذا يحوّل عملية كانت ستستغرق وقتًا أطول من عمر الكون في أحجام مفاتيح التشفير إلى عملية تنتهي في أجزاء من الثانية.
أدوات مشابهة
الإبلاغ عن مشكلة
حاسبة الحساب النمطي (Modular Arithmetic)
التعليقات
لا توجد تعليقات بعد — كن أول من يكتب تعليقًا!