حاسبات الرياضيات
حاسبة الـ Modulo


حاسبة الـ Modulo

تقوم حاسبة الـ Modulo أو الحاسبة المعيارية أو حاسبة باقي القسمة بإيجاد ما تبقى من تقسيم رقمين منطقيين/غير منطقيين موجبين/سالبين. كما يمكنك أيضًا معرفة كيفية إيجاد الـ modulus يدويًا.

المُعامِل

1

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

فهرس

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

حاسبة الـ Modulo

عملية الـ 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 % لأعمال التبليط في حالة التشذيب أو سوء الفهم. وسيشتري بلاط الحمامين الآخرين من متجر بناء محلي.

يمكن أن توفر خاصية mod في الآلة الحاسبة هذه النتيجة في ثوانٍ فقط.

عرض على مدار الساعة لمبدأ Modulo

نوع من الرياضيات يسمى "الحساب النمطي" يتعامل مع الهياكل الدورية. أسهل طريقة لتمثيل هذا هو مينا بدورة من 12. بالنسبة لعالم الرياضيات، المينا به تعديل 12.

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

251 mod 24

كانت النتيجة 11، لذا فإن الجواب هو لا! يمكننا فقط الإجابة بـ "نعم" إذا كانت النتيجة 0.

مثال

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

1 + 15 mod 12

وهو 4. في حالته، ستكون الساعة 4 صباحًا.

باستخدام الـ Modulo

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

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

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

تحويل الوحدة

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

على سبيل المثال، إذا أردنا معرفة عدد الساعات في 373 دقيقة، فقد تكون النتيجة المعبر عنها بـ 6 ساعات و 13 دقيقة أكثر قيمة من 6.2166666666666666667 ساعة.

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

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

مثال آخر على استخدام عامل modulo هو معرفة ما إذا كانت السنة عادية أم سنة كبيسة.

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

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

لموازنة وردية الست ساعات ، قدم قيصر سنة كبيسة. لمدة ثلاث سنوات متتالية ، كان هناك 365 يومًا في السنة. وفي كل عام ، تمت إضافة مضاعفات الأربعة ويوم واحد إضافي في فبراير.

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

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

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

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

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

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

دعنا نعود إلى مشكلتنا.

نحن نعلم ذلك:

  • إذا كان رقم سنة mod4=0 ، ورقم سنة mod100≠0 ، فهذه سنة كبيسة.
  • إذا كان رقم سنة mod400=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 في قائمة ؛
  • تقييد العدد على النطاق ؛
  • التدوير من خلال خيارات محدودة (مجموعة دائرية) ؛
  • عكس الرقم ؛
  • تحويل البيانات الخطية إلى مصفوفة ؛
  • تحديد ما إذا كانت المصفوفات هي إصدارات مستديرة لبعضها البعض ؛
  • ترقيم الصفحات.

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

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

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

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

حيث:

  • m هو الـ modulo،
  • a هو المضاعف،
  • c هو الزيادة و
  • X₀ هو القيمة الأولية.

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

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

التشفير

المشفرون يحبون الـ modulo. لأنه عند استخدامها بأرقام كبيرة حقًا، يمكنك إنشاء شيء باستخدام modulo يُعرف باسم "وظائف أحادية الاتجاه." تجعل هذه الوظائف الخاصة من السهل حساب شيء ما في اتجاه واحد ولكن ليس في الاتجاه المعاكس.

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

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

الخلاصة

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

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