حاسبات الرياضيات
حاسبة باقي القسمة (Modulo)


حاسبة باقي القسمة (Modulo)

استخدم حاسبة باقي القسمة (Modulo) المجانية لإيجاد باقي قسمة أي رقمين بسهولة وسرعة. تدعم الأرقام الموجبة والسالبة مع شرح لخطوات الحساب اليدوي بدقة.

المُعامِل

1

كان هناك خطأ في الحساب.

فهرس

  1. حساب الـ Modulo بدون آلة حاسبة
    1. مثال
  2. تمثيل مبدأ الـ Modulo باستخدام الساعة
    1. مثال
  3. استخدامات عملية الـ Modulo العملية
    1. تحديد الأعداد الفردية والزوجية
    2. تحويل الوحدات القياسية
    3. تحديد السنة الكبيسة
  4. مولدات الأرقام العشوائية
    1. التشفير
  5. الخلاصة

حاسبة باقي القسمة (Modulo)

عملية حساب باقي القسمة (Modulo) هي طريقة رياضية تُستخدم لإيجاد الباقي من عملية القسمة. وتتميز هذه العملية بأنها تُرجع الباقي دائمًا في صورة عدد صحيح.

تخيل أن لديك ثلاثة أطفال، واشتريت علبة حلوى تحتوي على 20 قطعة. تريد تقسيم هذه الحلوى بالتساوي وبالعدل بينهم، على أن تحتفظ لنفسك بالقطع المتبقية التي لا يمكن قسمتها دون كسرها أو تقطيعها. وبما أن أطفالك لا يزالون في المدرسة، يمكنك أولاً حساب الباقي من عملية القسمة لمعرفة عدد قطع الحلوى التي ستكون من نصيبك.

هنا يأتي دور عملية "باقي القسمة" (Modulo). يُرمز لهذه العملية عادةً بالعلامة المئوية % أو بكلمة mod. بالنسبة للأرقام الصغيرة، يمكنك إجراء هذه الحسابات ذهنيًا بسهولة، ولكن عند التعامل مع أرقام كبيرة، سيكون من الأسهل والأكثر دقة استخدام حاسبة الـ Modulo.

يمكن تمثيل المعادلة الرياضية على النحو التالي:

المقسوم = (ناتج القسمة × المقسوم عليه) + الباقي

في حالتنا هذه:

  • المقسوم هو 20 (العدد الإجمالي لقطع الحلوى)؛
  • المقسوم عليه هو 3 (عدد الأطفال)؛
  • ناتج القسمة هو 6 (عدد قطع الحلوى لكل طفل)؛
  • الباقي هو 2 (عدد القطع المتبقية التي ستأخذها لنفسك).

إذا كنت تستخدم حاسبة الـ Modulo ، فيمكنك كتابتها بالشكل التالي:

x % y = r

أو

x mod y = r

حيث x هو المقسوم، و y هو المقسوم عليه، و r هو الباقي.

في حالتنا،

20 % 3 = 2

حساب الـ Modulo بدون آلة حاسبة

لنأخذ حالة عملية كمثال توضيحي.

مثال

يعيش محمود في مدينة بالي ويبني دار ضيافة صغيرة تتكون من ست وحدات سكنية، ويعمل حاليًا على تركيب بلاط الحمامات. عرض عليه جاره "عزيز"، الذي انتهى للتو من بناء فندقه الخاص، خصمًا كبيرًا لشراء البلاط المتبقي لديه.

أحصى عزيز 15 صندوقًا في مستودعه، يحتوي كل منها على 4 بلاطات (بحجم 60 × 60 سم)، بالإضافة إلى بلاطتين منفصلتين. ليكون إجمالي عدد البلاط 62 بلاطة. ويرغب عزيز في بيع الكمية بالكامل دفعة واحدة.

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

كيف يمكن إيجاد باقي القسمة يدويًا دون استخدام آلة حاسبة؟

قاس محمود مساحة الحمام القياسي في دار الضيافة، ووجد أنه يحتاج إلى حوالي 14 بلاطة لكل حمام.

لنقم بإجراء الحسابات يدويًا:

  1. حدد الرقم الأساسي أو المقسوم. في هذه الحالة هو 62، أي إجمالي عدد البلاطات المعروضة.
  2. حدد المقسوم عليه. وهو 14، أي متوسط عدد البلاطات المطلوبة للحمام الواحد.
  3. قسّم المقسوم على المقسوم عليه وقم بتقريب النتيجة إلى أقرب عدد صحيح أدنى. 62 / 14 = 4.428571428571429 أي 4. إذن، يكفي البلاط لكسوة أربعة حمامات كاملة.
  4. اضرب ناتج القسمة الصحيح في المقسوم عليه. أي 4 × 14 = 56. وهذا هو إجمالي عدد البلاط المستخدم للحمامات الأربعة.
  5. اطرح نتيجة هذا الضرب من المقسوم الأساسي. أي 62 - 56 = 6. بالتالي، سيتبقى لدى محمود ست بلاطات إضافية.

بطريقة مبسطة ومختصرة، يمكننا كتابة هذه العملية على النحو التالي:

62 % 14 = 6

أو

62 mod 14 = 6

قرر محمود أن هذه الصفقة جيدة، لأنه من الضروري الاحتفاظ بهامش احتياطي من البلاط يبلغ حوالي 10% تحسبًا لعمليات القص والتشذيب أو التلف العرضي أثناء التركيب. وسيقوم بشراء البلاط اللازم للحمامين المتبقيين من متجر مواد بناء محلي.

باستخدام حاسبة الـ Modulo، يمكنك الحصول على هذه النتيجة بدقة في ثوانٍ معدودة.

تمثيل مبدأ الـ Modulo باستخدام الساعة

يهتم فرع الرياضيات المعروف باسم "الحساب المعياري" (Modular Arithmetic) بالهياكل الدورية. ولعل أسهل طريقة لتمثيل ذلك هي مينا الساعة ذات الـ 12 ساعة. بالنسبة لعلماء الرياضيات، تعمل الساعة بنظام "Modulo 12".

إذا أردت معرفة ما إذا كان بإمكانك تقسيم 251 ساعة إلى أيام كاملة دون أي باقٍ، فيمكنك تطبيق العملية التالية:

251 mod 24

النتيجة هي 11، لذا فالإجابة هي لا! لا تكون الإجابة "نعم" إلا إذا كانت النتيجة صفرًا.

مثال

يرغب دانيال في السفر بالحافلة من أتلانتا إلى ميامي. تغادر الحافلة في تمام الساعة 1 ظهرًا، وتستغرق الرحلة 15 ساعة. كم ستكون الساعة عند وصوله؟ يمكن حساب ذلك كالتالي:

1 + 15 mod 12

النتيجة هي 4. أي أنه سيصل في تمام الساعة 4 صباحًا.

استخدامات عملية الـ Modulo العملية

تحديد الأعداد الفردية والزوجية

من أبرز استخدامات عملية الـ Modulo هو تحديد ما إذا كان الرقم زوجيًا أم فرديًا. يتحقق ذلك لأن العملية x % 2 تُرجع دائمًا إما 0 أو 1. الأرقام الزوجية تُرجع دائمًا 0 لأنها تقبل القسمة على 2 بدون باقٍ، بينما الأرقام الفردية تُرجع دائمًا الباقي 1.

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

تحويل الوحدات القياسية

يُعد تحويل الوحدات مثالًا تقليديًا وعمليًا لاستخدام عملية الـ Modulo. تُستخدم هذه العملية عادةً عند تحويل وحدات صغيرة، مثل الدقائق أو البوصات أو السنتيمترات، إلى وحدات أكبر، مثل الساعات أو الأميال أو الكيلومترات. في مثل هذه الحالات، لا تكون الأرقام العشرية أو الكسرية مفيدة أو مفهومة دائمًا.

على سبيل المثال، إذا أردنا معرفة عدد الساعات في 373 دقيقة، فإن التعبير عن النتيجة كـ "6 ساعات و13 دقيقة" يكون أكثر وضوحًا وفائدة من كتابتها بصيغة 6.216666666666667 ساعة.

تقوم عملية القسمة العادية (مع تجاهل الباقي) بتحديد عدد الساعات الكاملة، بينما تُستخدم عملية الـ modulo لحساب الدقائق المتبقية. سواء كنت تتعامل مع الوقت، أو المسافة، أو الضغط، أو الطاقة، أو سعة تخزين البيانات، يمكنك دائمًا الاعتماد على هذا النهج الدقيق لتحويل الوحدات.

تحديد السنة الكبيسة

من الأمثلة الشائعة الأخرى لاستخدام عامل الـ modulo هو تحديد ما إذا كانت السنة تقويمية عادية أم سنة كبيسة.

السنة الكبيسة هي سنة تقويمية تحتوي على يوم إضافي في التقويم الشمسي لضبط الفارق الزمني. وهذا اليوم الإضافي يقع في 29 فبراير.

في الأول من يناير عام 45 قبل الميلاد، اعتمد الديكتاتور الروماني يوليوس قيصر التقويم الذي أعده علماء الفلك السكندريون في روما. استند هذا التقويم إلى حسابات فلكية تفيد بأن طول السنة الشمسية يبلغ حوالي 365.25 يومًا (365 يومًا و6 ساعات). وقد عُرف هذا التقويم باسم "التقويم اليولياني".

ولمعادلة فارق الست ساعات السنوي، ابتكر قيصر نظام السنة الكبيسة. بحيث تتكون ثلاث سنوات متتالية من 365 يومًا، وفي السنة الرابعة (مضاعفات الرقم 4) تتم إضافة يوم إضافي إلى شهر فبراير.

ومع مرور الوقت، تبين أن هذه القاعدة وحدها لم تكن دقيقة بما فيه الكفاية.

يبلغ متوسط السنة المدارية (الوقت الفاصل بين اعتدالين ربيعيين) بدقة أكبر حوالي 365 يومًا و5 ساعات و49 دقيقة. وبالتالي، فإن الفارق بين السنة المدارية الحقيقية والسنة في التقويم اليولياني (365 يومًا و6 ساعات) يبلغ حوالي 11 دقيقة. بمرور حوالي 128 عامًا، تتراكم هذه الدقائق الإحدى عشرة لتشكل يومًا كاملاً إضافيًا.

للتعويض عن هذا التراكم في الأخطاء ولتجنب انزياح الفصول في المستقبل، أجرى البابا غريغوريوس الثالث عشر إصلاحًا للتقويم في عام 1582، حيث أضاف قواعد جديدة لحساب السنوات الكبيسة. ظلت السنوات الكبيسة من مضاعفات الرقم 4، ولكن تم استثناء السنوات التي تُعد من مضاعفات الرقم 100. فهذه السنوات المئوية لا تعتبر كبيسة إلا إذا كانت تقبل القسمة على 400.

أصبحت قواعد تحديد السنة الكبيسة على النحو التالي:

  • السنوات التي يكون رقمها من مضاعفات 400 هي سنوات كبيسة؛
  • السنوات المتبقية التي يبلغ رقمها من مضاعفات 100 ليست سنوات كبيسة (على سبيل المثال، السنوات 1700، 1800، 1900، 2100، 2200، 2300)؛
  • السنوات المتبقية التي تكون من مضاعفات الرقم 4، هي سنوات كبيسة؛
  • جميع السنوات الأخرى ليست سنوات كبيسة.

وبالتالي، فإن السنوات 1700 و 1800 و 1900 ليست كبيسة لأنها من مضاعفات 100 ولكنها لا تقبل القسمة على 400. في حين أن السنتين 1600 و 2000 هي سنوات كبيسة لأنها من مضاعفات 400.

دعونا نعود إلى مسألتنا البرمجية.

وفقًا للقواعد السابقة، نعلم أن:

  • إذا كان رقم السنة mod 4 = 0، ورقم السنة mod 100 ≠ 0، فهي سنة كبيسة.
  • إذا كان رقم السنة mod 400 = 0، فهي سنة كبيسة.
  • في أي حالة أخرى، فهي ليست سنة كبيسة.

باستخدام كود بايثون (Python) بسيط، يمكنك بسهولة التحقق مما إذا كانت السنة كبيسة أم لا، وسيبدو الكود كالتالي:

year = int(input('Enter year: '))

if (year%4 == 0 and year%100 != 0) or (year%400 == 0) :

	print(year, "is a leap year.")

else:

	print(year, "is not a leap year.")

تشمل التطبيقات البرمجية الشائعة لاستخدام عامل الـ modulo ما يلي:

  • تحديد ما إذا كان الرقم زوجيًا أو فرديًا؛
  • تنفيذ عملية محددة على كل عنصر Nth (ذو الترتيب ن) في قائمة أو مصفوفة؛
  • حصر الأرقام وتقييدها ضمن نطاق معين؛
  • التبديل الدائري بين خيارات محدودة (مصفوفة دائرية)؛
  • عكس ترتيب الأرقام؛
  • تحويل هياكل البيانات الخطية إلى مصفوفات ثنائية؛
  • تحديد ما إذا كانت المصفوفات تمثل نسخًا مستديرة لبعضها البعض؛
  • تقسيم المحتوى وعرضه على صفحات متعددة (Pagination).

مولدات الأرقام العشوائية

غالبًا ما تُستخدم عملية تطابق الـ Modulo في أجهزة الكمبيوتر ومعدات الاتصالات لإنشاء أرقام تحقق (Checksums) وتوليد أرقام عشوائية ضمن نطاق محدود، كما هو الحال في مولد الأرقام العشوائية المتطابقة. وقد اقترح العالم ديريك هنري ليمر طريقة التطابق الخطي في عام 1949.

تعمل طريقة التطابق الخطي وفقًا للمعادلة التالية:

$$X_{n+1} = (a × X_n + c)\mod m$$

حيث:

  • m هو الـ modulo (المعامل)،
  • a هو المضاعف (Multiplier)،
  • c هو الزيادة (Increment)، و
  • X₀ هو القيمة الابتدائية أو البذرة (Seed).

على سبيل المثال، عند استخدام القيم: m = 11, X₀ = 9, a = 9, c = 9، نحصل على السلسلة التالية من الأرقام العشوائية:

9, 2, 5, 10, 0, 9, 2, 5, 10, 0, 9

التشفير

يعشق خبراء التشفير عملية الـ modulo. والسبب هو أنه عند استخدامها مع أرقام ضخمة جدًا، يمكنك إنشاء ما يُعرف في عالم التشفير باسم "الدوال أحادية الاتجاه" (One-way functions). هذه الدوال الخاصة تجعل من السهل جدًا حساب النتيجة في اتجاه واحد، ولكن من شبه المستحيل عكس العملية لمعرفة المدخلات الأصلية.

إذا قيل لك أن الرقم 9 هو نتيجة لعملية تربيع، فيمكنك بسهولة استنتاج أن المدخل الأصلي كان 3. يمكنك تخيل العملية برمتها بوضوح من البداية إلى النهاية. ولكن، إذا أخبرتك أن الرقم 9 هو نتيجة عملية Modulo 29، فمن الصعب جدًا معرفة الرقم المدخل الأصلي بدقة.

يُعجب علماء التشفير بهذه الخاصية بشكل خاص؛ لأنهم يستطيعون توظيف عملية القسمة وإيجاد الباقي لتوليد أعداد أولية عملاقة تُستخدم لإنشاء مفاتيح تشفير آمنة ومعقدة.

الخلاصة

سواء كنت تحاول توزيع مجموعة من العناصر بالتساوي في صناديق التخزين، أو تتحقق مما إذا كان رقم ما يقبل القسمة على رقم آخر، أو كنت تحاول ببساطة حساب الوقت، فإن عملية الـ Modulo تظل حاضرة بقوة لتسهيل هذه المهام. في كل هذه الحالات، يعتبر "الباقي" على نفس القدر من الأهمية كما هو الحال مع ناتج القسمة نفسه.

في بعض الأحيان، تكون المسألة التي تواجهها بسيطة وبديهية ويمكن حسابها ذهنيًا. ومع ذلك، عندما تصبح الأرقام معقدة والمسائل أكثر تشابكًا، فإن الخيار الأفضل والأسرع دائمًا هو الاعتماد على حاسبة الـ modulo عبر الإنترنت للوصول إلى الحل الدقيق في ثوانٍ.