لم يتم العثور على نتائج
لا يمكننا العثور على أي شيء بهذا المصطلح في الوقت الحالي، حاول البحث عن شيء آخر.
استخدم حاسبة باقي القسمة (Modulo) المجانية لإيجاد باقي قسمة أي رقمين بسهولة وسرعة. تدعم الأرقام الموجبة والسالبة مع شرح لخطوات الحساب اليدوي بدقة.
المُعامِل
1
كان هناك خطأ في الحساب.
عملية حساب باقي القسمة (Modulo) هي طريقة رياضية تُستخدم لإيجاد الباقي من عملية القسمة. وتتميز هذه العملية بأنها تُرجع الباقي دائمًا في صورة عدد صحيح.
تخيل أن لديك ثلاثة أطفال، واشتريت علبة حلوى تحتوي على 20 قطعة. تريد تقسيم هذه الحلوى بالتساوي وبالعدل بينهم، على أن تحتفظ لنفسك بالقطع المتبقية التي لا يمكن قسمتها دون كسرها أو تقطيعها. وبما أن أطفالك لا يزالون في المدرسة، يمكنك أولاً حساب الباقي من عملية القسمة لمعرفة عدد قطع الحلوى التي ستكون من نصيبك.
هنا يأتي دور عملية "باقي القسمة" (Modulo). يُرمز لهذه العملية عادةً بالعلامة المئوية % أو بكلمة mod. بالنسبة للأرقام الصغيرة، يمكنك إجراء هذه الحسابات ذهنيًا بسهولة، ولكن عند التعامل مع أرقام كبيرة، سيكون من الأسهل والأكثر دقة استخدام حاسبة الـ Modulo.
يمكن تمثيل المعادلة الرياضية على النحو التالي:
المقسوم = (ناتج القسمة × المقسوم عليه) + الباقي
في حالتنا هذه:
إذا كنت تستخدم حاسبة الـ Modulo ، فيمكنك كتابتها بالشكل التالي:
x % y = r
أو
x mod y = r
حيث x هو المقسوم، و y هو المقسوم عليه، و r هو الباقي.
في حالتنا،
20 % 3 = 2
لنأخذ حالة عملية كمثال توضيحي.
يعيش محمود في مدينة بالي ويبني دار ضيافة صغيرة تتكون من ست وحدات سكنية، ويعمل حاليًا على تركيب بلاط الحمامات. عرض عليه جاره "عزيز"، الذي انتهى للتو من بناء فندقه الخاص، خصمًا كبيرًا لشراء البلاط المتبقي لديه.
أحصى عزيز 15 صندوقًا في مستودعه، يحتوي كل منها على 4 بلاطات (بحجم 60 × 60 سم)، بالإضافة إلى بلاطتين منفصلتين. ليكون إجمالي عدد البلاط 62 بلاطة. ويرغب عزيز في بيع الكمية بالكامل دفعة واحدة.
يحتاج محمود الآن إلى معرفة عدد الحمامات التي يمكنه رصفها بهذا البلاط، وكم عدد البلاط الذي من المحتمل أن يبقى دون استخدام.
كيف يمكن إيجاد باقي القسمة يدويًا دون استخدام آلة حاسبة؟
قاس محمود مساحة الحمام القياسي في دار الضيافة، ووجد أنه يحتاج إلى حوالي 14 بلاطة لكل حمام.
لنقم بإجراء الحسابات يدويًا:
بطريقة مبسطة ومختصرة، يمكننا كتابة هذه العملية على النحو التالي:
62 % 14 = 6
أو
62 mod 14 = 6
قرر محمود أن هذه الصفقة جيدة، لأنه من الضروري الاحتفاظ بهامش احتياطي من البلاط يبلغ حوالي 10% تحسبًا لعمليات القص والتشذيب أو التلف العرضي أثناء التركيب. وسيقوم بشراء البلاط اللازم للحمامين المتبقيين من متجر مواد بناء محلي.
باستخدام حاسبة الـ Modulo، يمكنك الحصول على هذه النتيجة بدقة في ثوانٍ معدودة.
يهتم فرع الرياضيات المعروف باسم "الحساب المعياري" (Modular Arithmetic) بالهياكل الدورية. ولعل أسهل طريقة لتمثيل ذلك هي مينا الساعة ذات الـ 12 ساعة. بالنسبة لعلماء الرياضيات، تعمل الساعة بنظام "Modulo 12".
إذا أردت معرفة ما إذا كان بإمكانك تقسيم 251 ساعة إلى أيام كاملة دون أي باقٍ، فيمكنك تطبيق العملية التالية:
251 mod 24
النتيجة هي 11، لذا فالإجابة هي لا! لا تكون الإجابة "نعم" إلا إذا كانت النتيجة صفرًا.
يرغب دانيال في السفر بالحافلة من أتلانتا إلى ميامي. تغادر الحافلة في تمام الساعة 1 ظهرًا، وتستغرق الرحلة 15 ساعة. كم ستكون الساعة عند وصوله؟ يمكن حساب ذلك كالتالي:
1 + 15 mod 12
النتيجة هي 4. أي أنه سيصل في تمام الساعة 4 صباحًا.
من أبرز استخدامات عملية الـ 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.
أصبحت قواعد تحديد السنة الكبيسة على النحو التالي:
وبالتالي، فإن السنوات 1700 و 1800 و 1900 ليست كبيسة لأنها من مضاعفات 100 ولكنها لا تقبل القسمة على 400. في حين أن السنتين 1600 و 2000 هي سنوات كبيسة لأنها من مضاعفات 400.
دعونا نعود إلى مسألتنا البرمجية.
وفقًا للقواعد السابقة، نعلم أن:
باستخدام كود بايثون (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 ما يلي:
غالبًا ما تُستخدم عملية تطابق الـ Modulo في أجهزة الكمبيوتر ومعدات الاتصالات لإنشاء أرقام تحقق (Checksums) وتوليد أرقام عشوائية ضمن نطاق محدود، كما هو الحال في مولد الأرقام العشوائية المتطابقة. وقد اقترح العالم ديريك هنري ليمر طريقة التطابق الخطي في عام 1949.
تعمل طريقة التطابق الخطي وفقًا للمعادلة التالية:
$$X_{n+1} = (a × X_n + c)\mod m$$
حيث:
على سبيل المثال، عند استخدام القيم: 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 عبر الإنترنت للوصول إلى الحل الدقيق في ثوانٍ.