Skip to main content
🔬 Advanced ✨ New

حاسبة المودولو (الباقي)

احسب باقي عملية القسمة. أوجد a mod b فوراً مع شرح خطوة بخطوة. أداة رياضية مجانية، نتائج فورية ودقيقة.

ما هو عملية الموديولو؟

عملية الموديولو (mod, أو %) تعيد العدد المتبقي بعد القسمة على عدد آخر. لصفر و b: قسمة a على b، و النتيجة هي المتبقي. على سبيل المثال، 17 mod 5 = 2 (لأن 17 = 3 × 5 + 2). النتيجة دائما في المدى [0, b-1] للاعضاء الإيجابية.

العلاقة الأساسية: a = q × b + r، حيث q هو القيمة (floor(a/b)) و r هو المتبقي (0 ≤ r < b). الموديولو عملية معاونة للقسمة الصحيحة — إذا a ÷ b = q مع المتبقي r، ثم a mod b = r. هذا الحاسوب يستخدم تعريف الموديولو الرياضي الحقيقي (دائما غير سالب للقسم الإيجابي)، بدلا من المتبقي الموقوف المستخدم من قبل بعض لغات البرمجة.

الجبر الموديولي — الجبر مع قيمة ثابتة حيث الأرقام "تلف حول" — يتشكل أساسا للجبر الساعة. الساعات في الساعة المئوية تُحسب mod 12 أو mod 24. إذا كانت الساعة 10 صباحاً وضعت 5 ساعات: (10 + 5) mod 12 = 3 (PM). هذا السلوك الدائري هو أساس لعدة خوارزميات في علم الحاسوب، والتشفير، والهندسة الرياضية.

أمثلة ومسارات خطوة بخطوة للموديولو

فهم الموديولو يصبح واضحاً مع الأمثلة العملية. لكل حساب أدناه، الصيغة هي: المتبقي = a - floor(a ÷ b) × b.

النص التعبيريالناتج (floor)المتبقي (a mod b)التحقق
17 mod 5323 × 5 + 2 = 17 ✓
20 mod 4505 × 4 + 0 = 20 ✓
7 mod 3212 × 3 + 1 = 7 ✓
100 mod 714214 × 7 + 2 = 100 ✓
13 mod 13101 × 13 + 0 = 13 ✓
1 mod 5010 × 5 + 1 = 1 ✓
256 mod 1616016 × 16 + 0 = 256 ✓
365 mod 752152 × 7 + 1 = 365 ✓

انتبه إلى 365 mod 7 = 1: هذا يخبرنا بأن السنة غير القدرية لها 52 أسبوعاً كاملة + 1 يوم إضافي، لذلك يتغير يوم الأسبوع كل سنة غير القدرية. السنة القدرية (366 يوماً) mod 7 = 2، مما يؤدي إلى تغيير يوم الأسبوع بنفس القدر.

تطبيقات الجبر الموديولي

الموديولو يظهر في البرمجة والرياضيات. التحقق من الأعداد الزوجية/الفردي: إذا n % 2 == 0، n هو زوجي. المصفوفات الدائرية والمخزون الدائري: المؤشر = (المؤشر الحالي + 1) % الحجم المصفوفة يلف حول إلى البداية. خزائن التجزئة: الخزانة = hash(key) % عدد الخزائن يخضع أي قيمة هاش إلى مؤشر خزانة صالح، مما يضمن عدم الوصول خارج حدود الخزانة.

في التحليلات الزمنية، الجبر الموديولي يستخدم في حسابات يوم الأسبوع. الصيغة زيلر والخوارزمية يوم الديومسدياي (Doomsday) كلتاهما تعتمد على الجبر الموديولي لتحديد يوم الأسبوع لأي تاريخ. هذه تعمل لأن هناك 7 أيام في الأسبوع — قيمة ثابتة. تخفيضات التوقيت تستخدم mod 24 للف الحصول على القيم الساعة بشكل صحيح عبر حدود منتصف الليل.

في الأنظمة الرقمية، الموديولو يستخدم في كل مكان حيث يشارك العناوين الذاكرة. عناوين صفحات التخزين، اختيار مجموعة التخزين، ووضع التخزين المُخزّن في الذاكرة كلها تعتمد على التمثيل الموديولي. مجموعات تعليمات المعالج عادةً ما تشمل تعليمة المتبقي (الموديولي) جنباً إلى جنب مع القسمة، و تعليمات SIMD تستخدم الموديولي للف حول في التغييرات في المصفوفة.

في تحديد الأخطاء، التحقق الدوري (CRCs) والخزائن (checksums) يتم حسابها باستخدام الجبر الموديولي على GF(2). أرقام بطاقات الائتمان تمر بفحص لوهن (Luhn) (تحقق الموديولي-10). أرقام ISBN-10 للكتب تستخدم mod 11. هذه الخزائن تحقق الأخطاء في التبديل والتغيير في الأرقام.

مكعب في الرياضيات

الرياضيات المعدية هي أساس الرياضيات الحديثة للتشفير العام. الثلاثة أهم خوارزميات تشفيرية — RSA و Diffie-Hellman و تشفير المجموعة المضاعفة — كلها تعتمد على العمليات التي يتم إجراؤها المعدية على عدد كبير من العدد الأولي أو المركب.

تشفير RSA يستخدم المعدية المرتقبة: لتشفير رسالة M مع المفتاح العام (e ، n) ، حاسبه C = M^e mod n. للاسترداد ، حاسبه M = C^d mod n حيث d هو المفتاح الخاص. تعتمد الأمان على صعوبة فك تشفير n (عدد كبير من العدد الأولي) — مع العلم فقط بن ، يمكن استرداد p و q غير ممكن بشكل كمي في الحجمات الأعلى من 2048 بت.

تبادل المفتاح Diffie-Hellman يسمح للطرفين بإنشاء سر مشترك عبر قناة غير آمنة: يرسل أليس A = g^a mod p ، وبوب يرسل B = g^b mod p. يحتسب كل طرف السر المشترك: يحتسب أليس B^a mod p = g^(ab) mod p ، وبوب يحتسب A^b mod p = g^(ab) mod p. يمكن للخاطف الذي يراقب g^a mod p و g^b mod p أن لا يسترد g^(ab) mod p دون حل مشكلة اللوجاريت المحدب.

يعتمد أمان هذه الأنظمة على طبيعة واحدة الجانبية للمعدية المرتقبة: حاسبة g^a mod p سريعًا (باستخدام المربعات المكررة ، O(log a) ضربات) ، ولكن العكس — العثور على g^a mod p المحدد — يعتقد أنه يتطلب وقتًا مفرطًا للعوامل الكبيرة p.

مكعب مع الأرقام السالبة والحدود

سلوك المعدية مع الأرقام السالبة يختلف حسب اللغة البرمجية ، مما يسبب العديد من الأخطاء الصعبة للعثور عليها. فهم الاختلاف هو أمر حيوي للبرمجيين.

اللغة-7 % 37 % -3التعريف
Python2-2التوقيع يتبع المضروب (المعدية الحقيقية)
JavaScript-11التوقيع يتبع المفرق (المتبقى)
C / C++-11التوقيع يتبع المفرق (C99+)
Java-11التوقيع يتبع المفرق
Ruby2-2التوقيع يتبع المضروب (المعدية الحقيقية)
الرياضيات (التعريف)21 (أو غير محدد)دائمًا غير سالب للنتيجة

في الرياضيات ، دائمًا ما تعود المعدية إلى نتيجة سالبة: -7 mod 3 = 2 (لأن -7 = -3 × 3 + 2 ، و 0 ≤ 2 < 3). هذا المعدل يستخدم التعريف الرياضي.

طريقة آمنة لضمان نتيجة سالبة في أي لغة: ((a % b) + b) % b. هذا يتعامل مع المدخلات السالبة بشكل صحيح ويستخدم داخليًا من قبل محاكيينا. هذا النمط ضروري عندما تستخدم المعدية لتحديد مؤشرات المصفوفة أو حسابات اليوم في التقويم حيث النتائج السالبة ستسبب أخطاء.

حدود يجب تذكرها: (1) أي رقم % 1 = 0 — القسمة على 1 لا تترك أي متبقى. (2) أي رقم % نفسه = 0. (3) 0 % أي رقم غير الصفر = 0. (4) القسمة (ومعدية) على الصفر غير محددة — دائمًا قم بتحقق من المضروب قبل حساب المعدية. يظهر محاكيينا رسالة خطأ واضحة عند المعدية على الصفر.

مكتبات ومقاييس القسمة

أحد الاستخدامات العملية للقسمة الموديولارية هي اختبار القسمة دون أداء القسمة الكاملة. إذا كان عدد a قابل للقسمة على b، فإنه يجب أن يكون a mod b = 0. وهذا يسمح بفحص القسمة بسرعة:

القسمة علىاختبارمثال
2n mod 2 = 0 (أخير رقم زوجي)128 mod 2 = 0 ✓
3الجمع للأرقام mod 3 = 0123: 1+2+3=6, 6 mod 3 = 0 ✓
4آخر أرقام مزدوجة mod 4 = 0312: 12 mod 4 = 0 ✓
5آخر رقم هو 0 أو 5735 mod 5 = 0 ✓
9الجمع للأرقام mod 9 = 0369: 3+6+9=18, 18 mod 9 = 0 ✓
10n mod 10 = 0 (آخر رقم هو 0)500 mod 10 = 0 ✓

هذه القواعد لاختبار القسمة هي اختصارات تمت إستخراجها من خواص حسابية الموديولارية. القواعد لجمع الأرقام ل 3 و 9 تعمل لأن 10 ≡ 1 (mod 3) و 10 ≡ 1 (mod 9)، مما يعني أن قيمة كل رقم Positional غير مهمة لاختبار القسمة على 3 أو 9. هذه تعلمت في المدرسة الابتدائية بدون سياق حسابي موديولار، ولكن الآلية الأساسية هي موديولار.

الأساسيات الموديولار: السرعة القوى

حساب a^b mod n بشكل مباشر عن طريق حساب a^b أولاً، ثم أخذ mod n، هو غير عملي للأساطير الكبيرة - a^100 يمكن أن يكون له آلاف الأرقام. الأساسيات الموديولار تستخدم الهوية (a×b) mod n = ((a mod n) × (b mod n)) mod n لKEEP النتائج المتوسطة صغيرة.

الخوارزمية السريعة تستخدم التكرار المربّع (الأساسيات الثنائية):

هذا يقلل من عدد الضربات من b إلى O(log₂ b). ل b = 2048-bit RSA exponents (~10^600)، هذا هو الفرق بين مليارات الضربات و ~2000. بدون هذه التكيف، RSA encryption سيكون غير عملي تماما.

أسئلة شائعة

ما هو 15 % 4؟

15 % 4 = 3. لأن 15 = 3 × 4 + 3، فإن الباقي هو 3. تأكد: 3 × 4 = 12، و 15 - 12 = 3. ✓

ماذا يعني % 0؟

النسبة الموديولية إلى الصفر غير محددة، مثل القسمة على الصفر. لا يمكن حساب % 0. يعود جهازنا إلى رسالة خطأ في هذه الحالة. يتطلب أي عملية قسمة وجود مقسوم غير صفر.

كيف يرتبط الموديولولية بالتجزئة؟

يتمثل العدد a قابلًا للتقسيم إذا وفقط إذا كان a % b = 0. على سبيل المثال، 24 % 6 = 0، لذلك 24 قابل للتقسيم من قبل 6. 25 % 6 = 1، لذلك 25 غير قابل للتقسيم من قبل 6. يجعل الموديولولية أداة أساسية للتجزئة في علوم الحاسوب.

ما الفرق بين % و الباقي؟

للمعدود الإيجابية، % و الباقي متطابقان. بالنسبة للعددان السالبة، يختلفان: الموديولولية الرياضية دائمًا ترجع نتيجة غير سالبة (يتبع الإشارة المضروب)، بينما يتبع الباقي إشارة المضروب. على سبيل المثال، -7 % 3 = 2 (رياضيا)، ولكن -7 الباقي 3 = -1 (كما في C، Java، JavaScript).

ما هو 10 % 3؟

10 % 3 = 1. لأن 10 = 3 × 3 + 1، فإن الباقي هو 1. يمكنك التحقق: 3 × 3 = 9، و 10 - 9 = 1. هذا يعني أن 10 يترك باقي 1 عند القسمة على 3، لذلك 10 غير قابل للتقسيم من قبل 3.

ما هو 0 % 5؟

0 % 5 = 0. القسمة على أي عدد غير صفر تعطي ناتجًا صفرًا وواحدًا. بشكل عام، 0 % n = 0 لكل n ≠ 0. هذا يتوافق مع التعريف: 0 = 0 × 5 + 0.

كيف تستخدم الموديولولية في البرمجة؟

استخدامات البرمجة الشائعة تشمل: التحقق من العدد الزوجي/الفردي (n % 2 == 0)، wrapping مؤشرات المصفوفة (index % length)، تنفيذ خزانات حلقة، توزيع العناصر إلى خزانات البكسل (hash % size)، دوران خلال الحالات في الماكينة الحالة (counter % n == 0)، وتحقق من حدوث الأحداث الموجودة كل n-ثانية (counter % n == 0).

ما هي حساب الساعة؟

حساب الساعة هو الموديولولية اليومية. الساعة 12 ساعة تستخدم الموديولولية 12: 11 ساعة + 3 ساعات = (11 + 3) % 12 = 2 ساعة. هذا السلوك الدائري هو دقيقًا للموديولولية. على سبيل المثال، الأيام الأسبوعية تستخدم الموديولولية 7، والوقت العسكري يستخدم الموديولولية 24 للساعات.

لماذا هي الموديولولية مهمة في التشفير؟

الموديولولية الرياضية تجعل الوظائف الواحدة ممكنة. حساب g^a % p (مع g، a، p) سريع، ولكن العثور على g^a % p و p (مشكلة اللوجاريثم الديسكرية) غير ممكنة بشكل تقني للاستخدام في الحواسيب كبيرة الأرقام. هذا الاختلاف يؤكد تبادل Hellman-Diffie، RSA، و معظم التشفير العام المفتوح يحمي الاتصالات عبر الإنترنت.

ما هو نتيجة أي عدد % 1؟

أي عدد % 1 = 0. القسمة على 1 دائمًا تترك باقيًا - كل عدد قابل للتقسيم بالكامل من قبل 1. هذا هو الرياضي المتوافق: a = a × 1 + 0، لذلك الباقي دائمًا هو 0. هذا الحالة الحافة مهمة للتعامل مع implementations الموديولولية.

مثال في الحياة اليومية: أمثلة عملية

يظهر الحساب المضاعف في الحياة اليومية أكثر مما يعتقد معظم الناس. في اللحظة التي تقرأ فيها الساعة، تحسب وقت حدث أسبوعي، تحقق ما إذا كان رقم ما قابل للقسمة على 9، أو تحقق آخر رقم في السنة لتحديد أي يوم من الأسبوع سوف يقع عيد ميلادك فيه، فأنت تقوم بالحساب المضاعف - حتى لو لم تكن تستخدم اسمًا لهذا.

التخطيط والكرر: إذا حدث حدث كل 7 أيام و اليوم هو الثلاثاء (يوم 2، مع عدم احتساب الأحد = 0)، ثم 30 يومًا من الآن هو (2 + 30) mod 7 = 32 mod 7 = 4، وهو الخميس. هذا الحساب المباشر أسرع من الحساب الزمني للأسابيع واليومين بشكل منفصل. بشكل مشابه، إذا كان اشتراكك يُعاد تجديده في 28 من كل شهر، و هو الآن 15، ففترة الزمن حتى التجديد هي (28-15) mod 31 = 13 يومًا.

الحروف الرقمية: يُستخدم الحساب المضاعف 10 في معيار شريط ISBN-13. آخر رقم في أي ISBN-13 يختار بحيث يكون مجموع وزن جميع الأرقام 13 معًا قابل للقسمة على 10. إذا قمت بتسجيل رقم ISBN للكتاب بشكل خاطئ، سيفشل التحقق (mod 10 ≠ 0) وسيتم إظهار خطأ. يُستخدم رقم بطاقة الائتمان لuhn - الحساب المضاعف - لأغراض مماثلة. يُستخدم معيار ISBN-10 الحساب المضاعف 11، مما يسمح بتشخيص التبديل المفاجئ.

ذاكرة الحاسوب والعناوين: يتم توجيه ذاكرة RAM في قوى من 2 (1024، 2048، 4096 بايتات في الصفحة). عند الوصول إلى الذاكرة، يستخدم نظام التشغيل الحساب المضاعف لتحديد الصفحة التي يقع العنوان فيها: الصفحة_العدد = العنوان mod الصفحة_الحجم. يتم استخدام الحساب المضاعف بشكل مشابه في تحديد خطوط التخزين في caches CPU. يتم استخدام الحساب المضاعف الدائري في buffer wrap-around في معالجة الصوت، وترتيب البكسل في الشبكة، وstreaming الفيديو جميعها.

النماذج الفنية والموسيقية: يتم تحليل النماذج الريتمية في نظرية الموسيقى باستخدام الحساب المضاعف. توقيت 4/4 يحتوي على نبضات 0، 1، 2، 3 - دورة mod-4. يحدث النبضات المتعددة عندما يلعب نبضين مستقلين مع فترات m و n بشكل مستقل؛ يتوافقان كل lcm (m,n) نبضات. تكرار النماذج البصرية مثل التكاملات في التكاملات يكرر مع فترات مضاعفة في اثنين من الأبعاد.

التحويلات الجغرافية والزمنية: تتراوح فترات التوقيت UTC من -12 إلى +14. تحويل بين التوقيتات: وقت T في UTC، وقت محلي = (T + offset) mod 24. القيمة الناتجة قد تبدو غير منطقية (مثل 23 + 5 = 28، mod 24 = 4، مما يعني 4:00 صباحًا في اليوم التالي)، ولكن عملية الحساب المضاعف تتعامل مع الحدود منتصف الليل بشكل صحيح. يتم استخدام الحساب المضاعف 24 في kombinieren مع حسابات يوم الأسبوع باستخدام mod 7.

فهم الحساب المضاعف يجعل هذه الحسابات اليومية واضحة وأسرع وأقل خطأ. بمجرد أن ترى النمط، ستلاحظ الحساب المضاعف في تحسينات المترجمات، والخوارزميات الدورانية في ألعاب الفيديو، وتخطيط دورة روبن، وتوزيع الحمل عبر مجموعات الخوادم - كلها تعتمد على مفهوم بسيط ولكن القوي للغاية للباقي بعد القسمة.