احسب a mod n والأس بالمودولو (a^b mod n) والمعكوس الضربي بالمودولو (a⁻¹ mod n) استناداً إلى نظرية الأعداد.
المدخلات
عدد صحيح. تُقبل القيم السالبة، والنتيجة دائماً في النطاق [0, n − 1].
عدد صحيح موجب يحدد حجم الدورة. تُختزل جميع النتائج بالمودولو n.
النتائج
أدخل قيمة لعرض النتائج.
قيمة العملية المختارة في النطاق [0, n − 1].
تفاصيل
أكبر عدد صحيح q يحقق q × n ≤ a. تنعقد العلاقة: a = q × n + النتيجة.
الحساب بالمودولو
الحساب بالمودولو فرع من نظرية الأعداد يتعامل مع الأعداد الصحيحة وفق دورات متكررة، على غرار ما يفعله وجه الساعة مع الساعات: بعد الرقم 12 يعود العدّ إلى 1 من جديد. يكتب الرياضيون ليعنوا أن و يُعطيان الباقيَ ذاته عند القسمة على .
التعريف الرسمي وعلاقة القسمة
لعدد صحيح وعدد صحيح موجب ، يوجد عدد صحيح وحيد يحقق:
0≤r<nوa=q×n+r
حيث هو خارج القسمة الصحيحة (أكبر عدد صحيح يحقق )، و هو الباقي المودولار.
مثال: : نجد لأن ، ومن ثَمَّ . إذن .
الأعداد السالبة
يختلف التعريف الرياضي عن باقي القسمة المستخدم في بعض لغات البرمجة عند التعامل مع الأعداد السالبة. الباقي المودولار دائماً غير سالب:
−7mod5=3لأن−7=(−2)×5+3
بينما تُعيد بعض اللغات البرمجية مثل C وJavaScript القيمة −2 عند حساب −7 % 5. التعريف الرياضي هو المعتمد في هذه الحاسبة.
الأس بالمودولو
الأس بالمودولو يحسب ، وهو عملية محورية في التشفير. الحساب المباشر لـ يُنتج أرقاماً ضخمة جداً حتى لقيم صغيرة من ، لذا تُستخدم خوارزمية الأس بالتربيع المتكرر:
abmodn
تُفكَّك القيمة إلى صورتها الثنائية، وفي كل خطوة تُربَّع القيمة الجارية وتُختزل بالمودولو قبل الانتقال للخطوة التالية. تعقيد الخوارزمية ، مما يجعل حساب ممكناً في خطوات معدودة.
مثال محلول:
21=2,22=4,24=16≡2,28≡4,210=28×22≡4×4=16≡2(mod7)
المعكوس الضربي بالمودولو
المعكوس الضربي لـ بالمودولو ، يُرمز له بـ، هو العدد الصحيح الذي يحقق:
a×x≡1(modn)
شرط الوجود
يوجد هذا المعكوس إذا وفقط إذا كان ، أي أن و أوليَّان فيما بينهما.
إذا كان عدداً أولياً، فلكل عدد من 1 إلى معكوسٌ بالمودولو.
إذا كان ، لا يوجد معكوس، وتعرض الحاسبة تحذيراً بذلك.
مثال: : نبحث عن يحقق .
3×5=15=2×7+1≡1(mod7)
إذن .
تطبيقات الحساب بالمودولو
يدخل الحساب بالمودولو في تطبيقات متعددة:
التشفير بالمفتاح العام: يعتمد تشفير RSA على الأس بالمودولو والمعكوسات الضربية. أمان هذا التشفير مبني على صعوبة تحليل الأعداد الكبيرة إلى عواملها الأولية.
الأرقام الضابطة: تعتمد معايير ISBN وIBAN على خوارزميات مودولار للكشف عن أخطاء الإدخال.
حسابات التقويم: دورة أيام الأسبوع تعمل بمودولو 7؛ لحساب يوم الأسبوع المقابل لتاريخ بعيد تُستخدم صيغ مودولار.
هياكل البيانات الحلقية: فهرسة المخازن الحلقية (ring buffers) وجداول التشتيت (hash tables) تستخدم لضمان بقاء الفهرس ضمن النطاق الصحيح.
الأسئلة الشائعة (FAQ)
ما الفرق بين المودولو الرياضي وعامل الباقي في لغات البرمجة للأعداد السالبة؟
المودولو الرياضي يُعيد دائماً نتيجة غير سالبة في النطاق [0, n − 1]. فمثلاً، −7 mod 5 = 3، إذ تنبثق هذه النتيجة من العلاقة −7 = (−2) × 5 + 3. في المقابل، كثير من لغات البرمجة كـ C وJavaScript تستخدم باقي القسمة المبتورة، فتُعيد −2 عند حساب −7 % 5. تتبع هذه الحاسبة التعريف الرياضي الكامل.
كيف يُحسب أس كبير مثل 17^1000 mod 5 بكفاءة؟
تُستخدم خوارزمية الأس بالتربيع المتكرر (الضرب والتربيع)، التي تختزل عدد الضربات إلى O(log b). تُفكَّك القيمة b ثنائياً، وفي كل خطوة تُربَّع القيمة الجارية أو تُربَّع وتُضرب بالأساس، مع اختزال النتيجة بالمودولو n في كل مرحلة حتى تظل الأرقام صغيرة.
متى يوجد المعكوس الضربي بالمودولو؟
يوجد المعكوس a⁻¹ mod n إذا وفقط إذا كان gcd(a, n) = 1، أي أن a وn أوليَّان فيما بينهما ولا يجمعهما عامل مشترك أكبر من 1. إذا كان n عدداً أولياً، فلكل عدد صحيح من 1 إلى n − 1 معكوسٌ بالمودولو. أما إذا كان n مركَّباً، فالأعداد التي تشارك n في عامل مشترك لا معكوس لها.
أين يُطبَّق الحساب بالمودولو عملياً؟
يُشكِّل الحساب بالمودولو أساس كثير من التطبيقات الرياضية والحاسوبية: يعتمد عليه تشفير المفتاح العام (RSA) في الأس بالمودولو والمعكوسات الضربية، كما يدخل في حساب الدوال الهاشية، والأرقام الضابطة كـISBN وIBAN، وحسابات التقويم (دورة أيام الأسبوع بمودولو 7)، وفهرسة المخازن الحلقية في هياكل البيانات.