حاسبة الوقت

تُرجع عملية حساب الوقت باقي القسمة. بالنسبة للأعداد الموجبة يتفق الجميع: 17 mod 5 = 2. ولكن بالنسبة للأعداد السالبة، تختلف لغات البرمجة والرياضيون. يعرّف الاصطلاح الرياضي a mod b بحيث تكون النتيجة دائماً في النطاق [0, |b|) — لذا فإن -7 mod 3 = 2. يستخدم اصطلاح C/Go/JavaScript القسمة المقتطعة، لذلك يأخذ الباقي إشارة المقسوم — مما يعني أن -7 % 3 = -1. تعرض هذه الحاسبة كلا الأسلوبين حتى تتمكن من اختيار ما يطلبه مجالك. كما أنها تدعم معاملات حساب الوقت ذات الفاصلة العائمة (المستخدمة في لف الزوايا، وحساب الساعات، ومعالجة الإشارات) وتوضح كل خطوة من خطوات الحساب.

star 4.8
auto_awesome AI
New

حاسبة الوقت calculator

percent a mod b

The number being divided. Integers or decimals, positive or negative.

The modulus. Must be non-zero.

analytics Result

Modulo (math, floored)
2
Always in range [0, |b|)
Remainder (C-style, truncated) 2

Sign follows dividend. Matches C, C++, Go, Java, JavaScript (%).

Quotient (floor)
3
Quotient (trunc)
3
Step by step

    tips_and_updates Tips

    • • استخدم حساب الوقت الرياضي (الأرضي) للحساب المعياري، والتجزئة، ولف الزوايا
    • • استخدم حساب الوقت على طراز C (المقتطعة) عندما تريد مطابقة سلوك C أو C++ أو Go أو Java أو JavaScript
    • • بالنسبة لـ a و b الموجبين، يتفق الاصطلاحان، لذا فإن التمييز مهم فقط مع الأعداد السالبة
    • • حساب الوقت بالصفر غير معرف — يجب ألا يكون المقسوم عليه صفراً
    • • معامل % في بايثون يستخدم حساب الوقت الرياضي (الأرضي): -7 % 3 = 2

    The Formula

    تستخدم قسمة حساب المودولو قسمة الأرضية (floor division) بحيث يكون الباقي دائماً 0 <= r < |b|. بينما يستخدم مودولو لغة سي القسمة المقطوعة بحيث يكون لنفس الباقي إشارة المقسوم.

    r = a - b * q, where q = floor(a/b) (math) or trunc(a/b) (C-style)

    lightbulb Variables Explained

    • a المقسوم (العدد المراد قسمته)
    • b المقسوم عليه (معامل التقسيم)
    • q ناتج القسمة (إلى الأفل أو مقطوع)
    • r الباقي / نتيجة المودولو

    tips_and_updates Pro Tips

    1

    استخدم حساب الوقت الرياضي (الأرضي) للحساب المعياري، والتجزئة، ولف الزوايا

    2

    استخدم حساب الوقت على طراز C (المقتطعة) عندما تريد مطابقة سلوك C أو C++ أو Go أو Java أو JavaScript

    3

    بالنسبة لـ a و b الموجبين، يتفق الاصطلاحان، لذا فإن التمييز مهم فقط مع الأعداد السالبة

    4

    حساب الوقت بالصفر غير معرف — يجب ألا يكون المقسوم عليه صفراً

    5

    معامل % في بايثون يستخدم حساب الوقت الرياضي (الأرضي): -7 % 3 = 2

    عملية المودولو (والتي تُكتب غالباً كـ a mod b أو a % b) تُرجع باقي القسمة بعد قسمة عدد على آخر، وهي واحدة من أكثر العمليات استخداماً في الرياضيات وعلوم الكمبيوتر. تقوم أداة مثل **حاسبة الوقت** بحساب هذا الباقي لأي مقسوم ومقسوم عليه، بما في ذلك الأعداد السالبة والكسور العشرية، مع توضيح خطوات عملية القسمة خطوة بخطوة. بالنسبة للأعداد الموجبة، تكون النتيجة مباشرة: 17 مود 5 تساوي 2 لأن 17 مقسومة على 5 تساوي 3 مع باقي 2. ومع ذلك، فإن الأعداد السالبة تدخل تمييزاً حاسماً بين اصطلاحين: الاصطلاح الرياضي (الأرضي) يُرجع دائماً نتيجة غير سالبة، بينما اصطلاح البرمجة (المقطوع) المستخدم في سي وجافا وجافا سكريبت يحافظ على إشارة المقسوم. هذا يعني أن سالب 7 مود 3 يساوي 2 في الرياضيات ولكن سالب 1 في معظم لغات البرمجة. يعد فهم كلا الاصطلاحين أمراً بالغ الأهمية للمبرمجين وخبراء التشفير وأي شخص يعمل مع الأنماط الدورية أو حساب الساعات أو دوال التجزئة.

    الرياضيات مقابل برمجة المودولو: مشكلة الأعداد السالبة

    ينبع الاختلاف بين اصطلاحات المودولو الرياضية والبرمجية من طريقة تعاملها مع قسمة الأعداد الصحيحة. يستخدم المودولو الرياضي قسمة الأرضية (التقريب نحو ما لا نهاية السالبة)، لذا فإن ناتج قسمة سالب 7 على 3 ينخفض إلى سالب 3، مما يعطي باقي سالب 7 ناقص 3 ضرب سالب 3 يساوي 2. بينما يستخدم مودولو البرمجة القسمة المقطوعة (التقريب نحو الصفر)، لذا يتم قطع النتيجة إلى سالب 2، مما يعطي باقي سالب 7 ناقص 3 ضرب سالب 2 يساوي سالب 1.

    تستخدم بايثون بشكل فريد المودولو الرياضي (الأرضي)، مطابقةً الاصطلاح المتوقع في الجبر المجرد ونظريات الأعداد. بينما تستخدم لغات C وC++ وJava وJavaScript وGo وRust المودولو المقطوع، وتتطابق Ruby وPerl مع سلوك Python.

    هذا التمييز مهم في الكود الحقيقي: تحويل زاوية سالبة إلى نطاق 0-359 يتطلب مودولو رياضيات (سالب 90 مود 360 يساوي 270)، لكن معامل النسبة المئوية في لغة C يعطي سالب 90، مما يتطلب تعديلاً يدويًا.

    التطبيقات العملية للحساب المعياري

    يقع الحساب المعياري وراء عدد مذهل من الأنظمة الواقعية:

    • حساب الساعات هو نظام معياري: 10 صباحاً مضافاً إليها 5 ساعات تساوي 3 عصراً لأن 15 مود 12 تساوي 3.
    • أيام الأسبوع تتكرر بدورة مودولو 7.
    • جداول التجزئة تستخدم المودولو لربط المفاتيح بفهارس الدلاء: hash(key) mod table_size.
    • خوارزميات التشفير مثل RSA تعتمد كلياً على الأس المعياري وصعوبة إيجاد المعكوسات المعيارية للأعداد الأولية الكبيرة.
    • أرقام التحقق من ISBN وبطاقات الائتمان تستخدم عمليات المودولو لاكتشاف الأخطاء (ISBN-13 يستخدم مودولو 10، وخوارزمية Luhn لبطاقات الائتمان).
    • هياكل البيانات الدورية مثل المخازن الدائرية تستخدم المودولو لالتفاف فهارس المصفوفات: next_index يساوي (الحالي مضافاً إليه 1) مود حجم_المخزن.

    حتى المهام البسيطة مثل تحديد ما إذا كان الرقم زوجياً (n مود 2 يساوي 0) أو استخراج الرقم الأخير (n مود 10) تعتمد على المودولو.

    المودولو مع الكسور العشرية والحالات الخاصة

    تمتد عملية المودولو بشكل طبيعي لتشمل الأعداد الحقيقية باستخدام نفس الصيغة: r يساوي a ناقص b ضرب floor(a مقسوماً على b). على سبيل المثال، 5.5 مود 2 يساوي 1.5 لأن floor(5.5/2) يساوي 2، و5.5 ناقص 2 ضرب 2 يساوي 1.5.

    يُستخدم المودولو العائم على نطاق واسع في رسومات الكمبيوتر لالتفاف القواميس (u mod 1.0 يربط أي إحداثي بالنطاق من 0 إلى 1)، وتطبيع الزوايا (theta mod 360 يحافظ على الزوايا ضمن دورة كاملة واحدة)، وفي معالجة الإشارات لحسابات الطور.

    الحالات الحادة المهمة:

    • المودولو بالصفر غير معرف وسيتسبب في أخطاء القسمة على صفر في أي لغة.
    • المودولو عندما يكون المقسوم صفراً يعارج دائماً صفراً (0 مود b يساوي 0 لأي b لا يساوي صفراً).
    • عندما يكون كلا العاملين موجبين والمقسوم أصغر من المقسوم عليه، فإن النتيجة تساوي المقسوم (3 مود 7 يساوي 3).

    هذه الخصائص تجعل المودولو قابلاً للتنبؤ به للأعداد الموجبة ولكنها تتطلب معالجة دقيقة مع المدخلات السالبة أو العشرية.

    ما هي عملية المودولو وكيف تعمل؟

    تُرجع عملية المودولو باقي القسمة المتبقي بعد قسمة عدد صحيح على آخر، وتُكتب كـ a mod b أو a % b. بالنظر إلى المقسوم a والمقسوم عليه b الذي لا يساوي صفراً، فإنها تجيب على السؤال: بعد طرح أكبر عدد ممكن من النسخ الكاملة لـ b من a، ما الذي يتبقى؟

    على سبيل المثال، 17 مود 5 = 2 لأن الرقم 5 يندمج في 17 ثلاث مرات (15)، ليترك 2. وفقاً لـ Wolfram MathWorld، يتم تعريف دالة المودولو رسمياً على أنها باقي قسمة a على b، وهي تلبي دائماً الشرط 0 <= r < |b| بموجب الاصطلاح الرياضي.

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

    صيغة المودولو: r = a - b * floor(a/b)

    لحساب a mod b يدوياً، استخدم الصيغة r = a - b * q، حيث q هو ناتج القسمة. يختلف الاصطلاحان فقط في كيفية حساب q. يحدد المودولو الرياضي (الأرضي) q = floor(a/b)، مقرباً نحو ما لا نهاية السالبة؛ بينما يحدد مودولو لغة سي (المقطوع) q = trunc(a/b)، مقرباً نحو الصفر.

    التوضيح لكل حالة:

    • بالنسبة لـ 17 مود 5: floor(17/5) = 3، إذن r = 17 - 5*3 = 2.
    • بالنسبة لـ -7 مود 3 (رياضيات): floor(-7/3) = floor(-2.33) = -3، إذن r = -7 - 3*(-3) = 2.
    • بالنسبة لـ -7 % 3 (طريقة سي): trunc(-2.33) = -2، إذن r = -7 - 3*(-2) = -1.

    كما تشير مكتبة NIST الرقمية للدوال الرياضية، فإن الأرضية والقطع يتطابقان للعوامل الموجبة، ولهذا السبب يتفق كلا الاصطلاحين عندما يكون كل من a وb موجبين.

    كيفية حساب المودولو خطوة بخطوة مع مثال عملي

    حساب a mod b هو عملية من أربع خطوات. لنتأمل 23 مود 6.

    • الخطوة 1: اَسْمِ القسمة، 23 / 6 = 3.833.
    • الخطوة 2: خذ ناتج القسمة الصحيح، floor(3.833) = 3.
    • الخطوة 3: اضرب مرة أخرى، 3 * 6 = 18.
    • الخطوة 4: اطرح، 23 - 18 = 5.

    إذن 23 مود 6 = 5، وبالفعل 23 = 6*3 + 5. بالنسبة لمقسوم سالب مثل -23 مود 6 (الاصطلاح الرياضي)، فإن floor(-23/6) = floor(-3.833) = -4، إذن -23 - 6*(-4) = -23 + 24 = 1.

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

    ما هو الحساب المعياري والتطابق؟

    الحساب المعياري هو نظام حسابي للأعداد الصحيحة حيث تلتف الأعداد حول بعضها بعد الوصول إلى قيمة ثابتة تسمى المعامل (Modulus). يقال إن العددين الصحيحين a وb متطابقان بمعيار n، ويكتبان a ≡ b (mod n)، عندما يتركان نفس الباقي عند القسمة على n، أو بشكل مكافئ عندما يقسم n فرقهما.

    على سبيل المثال، 17 ≡ 5 (mod 12) لأن كلاً منهما يترك باقي 5 عند القسمة على 12، ولهذا السبب يقرأ وقت 17:00 على أنه 5 مساءً على ساعة ذات 12 ساعة.

    تصف موسوعة بريتانيكا الحساب المعياري بأنه حساب على مجموعة من البواقي المنتهية، وقد صيغ رسمياً بواسطة كارل فريدريش غاوس في عمله الصادر عام 1801 المعنون Disquisitiones Arithmeticae. تحافظ علاقات التطابق على الجمع والضرب، مما يجعلها العمود الفقري الجبري للتشفير وأكواد اكتشاف الأخطاء.

    الاستخدامات الواقعية للمودولو في البرمجة والحياة اليومية

    يظهر المودولو بشكل متكرر أكثر بكثير مما يدركه معظم الناس:

    • لاختبار ما إذا كان الرقم زوجياً، تحقق من n mod 2 == 0؛ ولاستخراج الرقم الأخير من عدد صحيح، احسب n mod 10.
    • المخازن الدائرية والطوابير الدائرية تلف موضع الكتابة الخاص بها باستخدام index = (index + 1) mod capacity، بحيث لا يتجاوز المؤشر نهاية المصفوفة أبداً.
    • جداول التجزئة تربط المفاتيح بالفتحات باستخدام hash mod table_size.
    • حسابات الوقت والتقويم معيارية: يوم الأسبوع يتقدم بمقدار (day + shift) mod 7، وتعمل الساعات على mod 12 أو mod 24.
    • أرقام التحقق لـ ISBN-13 (مود 10) وأرقام توجيه البنوك، بالإضافة إلى خوارزمية Luhn خلف التحقق من صحة بطاقات الائتمان، وكلها تعتمد على المودولو لاكتشاف الأخطاء المطبعية.
    • في التشفير، يعمل الأس المعياري على تشغيل خوارزميات RSA وتبادل مفاتيح ديفي-هلمان.

    الخصائص الرئيسية والهويات لعملية المودولو

    تخضع عملية باقي القسمة لعدة خصائص جبرية مفيدة تبسط حساب الوقت والبراهين.

    تشير قواعد التطابق الشبيهة بالتوزيع إلى أن (a + b) mod n = ((a mod n) + (b mod n)) mod n، وبالمثل (a * b) mod n = ((a mod n) * (b mod n)) mod n؛ فهذه القواعد تتيح لك تبسيط القيم الوسيطية الكبيرة قبل الضرب، مما يمنع تجاوز السعة.

    هذه هي الهويات الرئيسية التي يجب تذكرها:

    • إذا كان المقسوم أصغر من المقسوم عليه وكلاهما موجبان، فالنتيجة هي المقسوم نفسه، لذا فإن 3 mod 7 = 3.
    • المقسوم الصفري ينتج دائمًا صفراً: 0 mod b = 0.
    • أي مضاعف للمقسوم عليه يعطي صفراً، لذا فإن 20 mod 5 = 0.
    • نتيجة a mod b تكون دائماً أقل تماماً من |b| بموجب الاصطلاح الرياضي.

    هذه الهويات، الموثقة في مصادر مثل مدخل التطابق في Wolfram MathWorld، تجعل الاختزال المعياري سريعاً ويمكن التنبؤ به.

    الأخطاء الشائعة عند **حساب الساعات** وباقي القسمة

    انتبه لهذه الأخطاء المتكررة:

    • افتراض أن كل لغة تعطي نفس الإشارة للمتغيرات السالبة. عملية -7 % 3 في بايثون تعطي 2، ولكن جافا وسي وجافاسكريبت تعطي -1، لذا فإن نسخ معادلة بين لغات البرمجة دون تعديل قد يوجِد أخطاء خفية، خاصة في لف الزوايا أو التجزئة.
    • محاولة إجراء باقي القسمة على الصفر، وهو أمر غير معرف ويسبب خطأ تشغيلياً في كل لغة؛ تحقق دائماً من أن المقسوم عليه لا يساوي الصفر.
    • الخلط في اتجاه تقريب خارج القسمة، مع نسيان أن القسمة المقربة نحو الأرض والمقتربة نحو الصفر تختلفان للأعداد السالبة.
    • تطبيق باقي القسمة الصحيح على قيم الفاصلة العائمة دون حساب التقريب قد ينتج عنه أخطاء طفيفة؛ 5.5 mod 2 = 1.5 تماماً، ولكن الانحراف المتراكم للفاصلة العائمة قد يعطي 1.4999999.
    • استخدام n mod 2 == 1 لاكتشاف الأعداد الفردية يفشل مع الأعداد السالبة في اللغات ذات التقريب نحو الصفر، حيث -3 % 2 = -1؛ اختبر n mod 2 != 0 بدلاً من ذلك.

    كيف تختلف عملية باقي القسمة باختلاف لغات البرمجة في **برنامج حساب الوقت**

    نظراً لأن إشارة الباقي للأعداد السالبة هي خيار تصميمي، تنقسم لغات البرمجة إلى معسكرين.

    • باقي القسمة المبتور (إشارة المقسوم) يُستخدَم في لغات C وC++ وC# وJava وJavaScript وGo وRust وSwift، لذا فإن -7 % 3 يُقيَّم بـ -1 في جميعها.
    • باقي القسمة المقرَّب نحو الأرض (إشارة المقسوم عليه، وغير سالب دائماً للمقسوم عليه الموجب) يُستخدَم في Python وRuby وPerl، لذا فإن -7 % 3 يُقيَّم بـ 2.

    توفر بعض اللغات كلا الأمرين: تحتوي بايثون على math.fmod للنتيجة المبتورة على طراز لغة C، وتكشف العديد من المكتبات القياسية عن دالة مخصصة لتقريب باقي القسمة مثل Math.floorMod في جافا، والتي تعطي 2 لـ floorMod(-7, 3).

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

    Frequently Asked Questions

    sell

    Tags