الرفع المعياري
ارفع عددًا إلى قوة واحتفظ بالباقي فقط: 2 أس 10 بترديد 1000 يساوي 24، و3 أس 5 بترديد 13 يساوي 9. تقبل كل قيمة حتى 2048 رقمًا وتبقى النتيجة دقيقة. مجانًا في متصفحك.
- مجاني
- يعمل في متصفحك
- دون تسجيل
- بياناتك لا تغادر جهازك
شغّل الأداة مجانًا
مثال محلول
- الأساس
- 2
- الأس الصحيح غير السالب
- 10
- المقياس الصحيح الموجب m
- 1000
- النتيجة
- 24
يجيب الرفع المعياري عن سؤال واحد بوضوح: ما قيمة الأساس مرفوعًا إلى أس مختزلًا modulo m؟ ذلك الباقي هو عمود فقرات عروض RSA اللعبة وأمثلة Diffie–Hellman الصفّية ومهام مسابقات البرمجة وأي سكربت يجب أن يرفع أعدادًا صحيحة كبيرة دون تجاوز حدود الأعداد الأصلية.
ما الذي يحسبه الرفع المعياري
بالرموز r ≡ base^exponent (mod m). الرفع الساذج يضرب الأساس في نفسه عدد مرات الأس ثم يختزل، فتنمو وسطيات هائلة ويفشل على الفاصلة العائمة العادية أو الأعداد ثابتة العرض. الرفع المعياري السريع يختزل بعد كل ضرب ويربّع الأساس الجاري أثناء مسح بتات الأس من الأقل إلى الأكثر أهمية، فيتدرج العمل مع طول الأس بالبت لا مع حجمه العشري.
عندما يكون m واحدًا يكون كل عدد صحيح مطابقًا للصفر فالنتيجة دائمًا صفر. عندما يكون الأس صفرًا تكون النتيجة واحدًا لأي أساس ما دام m أكبر من واحد، موافقةً لاتفاقية الجداء الفارغ المعتادة. تُختزل الأسس السالبة أولًا إلى نظام البواقي غير السالبة modulo m حتى لا تخلط سلسلة الضرب بواقي موقعة.
تُرفض الأسس السالبة لأنها تتطلب معكوسات معيارية قد لا توجد وهي خارج نطاق هذه الحاسبة.
الحدود والأداء وأين تناسب
يؤدي الرفع المعياري الثنائي عددًا ثابتًا من الضروب المعيارية لكل بت من الأس، لذا مضاعفة الأس تقريبًا تضاعف العمل بينما مقياس أكبر يرفع تكلفة كل ضرب. يستخدمها المعلّمون للتحقق من حسابات a^b mod m اليدوية قبل تسليم الطلاب للبراهين. يربطها المطوّرون باختبارات خصائص تؤكد بقاء البروتوكولات داخل فئات البواقي، وأنظمة ألعاب أو ترتيب تطوي عدّادات كبيرة modulo أولي، وخطوط سكربت لا ينبغي أن تعيد تنفيذ مربع-واضرب بكل لغة.
اقرنها بأدوات تحليل أو معكوس منفصلة عندما يحتاج سير العمل عدة الأدوات المعيارية الكاملة؛ يجيب هذا الطرف فقط عن سؤال الرفع والاختزال ليبقى قصد البحث واضحًا والاستجابة في حدها الأدنى.
حالات الاستخدام
التحقق من إجابات المسابقات والواجبات a^b mod m
يمكن للطلاب والمدربين فحص القوى المعيارية دون ضرب وسطيات هائلة يدويًا أو الثقة بحاسبة تفقد الدقة بصمت بعد 2^53.
زرع عروض التشفير واختبارات وحدة البروتوكولات
يمكن للسكربتات التي تحتاج خطوة حتمية base^exp mod m لـ RSA لعبة أو Diffie–Hellman أو تأكيدات فئات البواقي استدعاء هذا بدل شحن رفع BigInt الخاص بها.
طي عدّادات كبيرة في مدى باقٍ ثابت
تحصل الألعاب وأنظمة الترتيب ومساعدات التجزئة التي ترفع عددًا صحيحًا ثم تختزل modulo m على باقٍ دقيق دون مفاجآت تقريب الفاصلة العائمة.
الأسئلة الشائعة
ما الرفع المعياري؟
هو حساب الأساس مرفوعًا إلى أس وأخذ الباقي modulo m، ويُكتب base^exponent mod m. تعيد هذه الحاسبة ذلك الباقي غير السالب كـ result.
لماذا يُرفض الأس السالب؟
الأس السالب يعني قوى عكسية ويتطلب معكوسات معيارية قد لا توجد عندما لا يكون base و m أوليين نسبيًا.
كيف تعمل حاسبة الرفع المعياري؟
تستخدم مربع-واضرب الثنائي على BigInt: لكل بت من الأس تربّع الأساس الجاري modulo m وتضرب في النتيجة عندما يكون البت مضبوطًا.
ما أكبر حجم مسموح به للأعداد؟
يمكن أن يصل كل من الأساس والأس والمقياس إلى 2048 رقمًا. وهذا يكفي لمسائل المسابقات والواجبات وكثير من أمثلة التشفير، مع نتيجة دقيقة وسريعة.
ماذا يحدث إذا كان الأس 0 أو المقياس 1؟
إذا كان الأس 0 فالنتيجة 1 ما دام المقياس أكبر من 1، مثل 7 أس 0 بترديد 5. أما مع المقياس 1 فكل عدد يطابق الصفر، فتكون النتيجة دائمًا 0.
أدوات ذات صلة
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/numth/modular-exponentiation \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"base":"2","exponent":"10","modulus":"1000"}'const res = await fetch("https://api.kit.forhosting.com/numth/modular-exponentiation", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"base": "2",
"exponent": "10",
"modulus": "1000"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/numth/modular-exponentiation",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"base": "2",
"exponent": "10",
"modulus": "1000"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/numth/modular-exponentiation", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"base":"2","exponent":"10","modulus":"1000"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"base":"2","exponent":"10","modulus":"1000"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/numth/modular-exponentiation", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"base": "2",
"exponent": "10",
"modulus": "1000"
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "numth.modular_exponentiation",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الحدود
max_digits | 2048 |
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |
ملاحظات تقنية
تنفّذ حاسبة الرفع المعياري هذه مربع-واضرب الثنائي على BigInt لتبقى الإجابة دقيقة وحتمية ومجانية للتجربة في متصفحك قبل استدعاء نفس النواة عبر API.
ما الذي يحسبه الرفع المعياري
بأخذ أعداد صحيحة base و exponent و modulus m، يعيد الرفع المعياري الباقي الفريد r في المدى من 0 إلى m ناقص واحد بحيث يكون الأساس مرفوعًا إلى الأس مطابقًا لـ r modulo m. يجب أن يكون المقياس واحدًا على الأقل؛ المقاييس الصفرية أو السالبة لا تعرّف باقيًا غير سالب قياسيًا وتعيد invalid_input بدل اختراع إجابة.
كيف تستدعي API وتقرأ النتيجة
أرسل جسم JSON بثلاثة حقول إلزامية: base و exponent و modulus. يجوز لكل منها أن يكون سلسلة عدد صحيح عشري أو رقم JSON؛ تُفضَّل صيغة السلسلة للقيم الأكبر من نطاق الأعداد الصحيحة الآمن في JavaScript. تُقبل الأسماء البديلة a لـ base و exp أو e أو power لـ exponent و m أو mod لـ modulus ليتشارك النماذج والعملاء المكتوبون يدويًا عقدًا واحدًا. عند النجاح تعيد الاستجابة base و exponent و modulus كسلاسل عشرية موحّدة وتضيف result كالباقي غير السالب لـ base^exponent mod modulus. فحوصات كلاسيكية: base 2 و exponent 10 و modulus 1000 تعطي result 24؛ base 3 و exponent 5 و modulus 13 تعطي 9؛ base 7 و exponent 0 و modulus 5 تعطي 1. فشل التحقق — حقول ناقصة، غير أعداد صحيحة، كسور، modulus دون واحد، أس سالب، أو قيمة أطول من حد الأرقام المنشور — يعيد invalid_input ولا يُحاسب أبدًا. التسعير ثابت $0.002 لكل طلب ناجح (بند وحدوي بسعر هامشي صفري).
الحدود والأداء وأين تناسب
تحدّ هذه القدرة base و exponent و modulus عند 2048 رقمًا عشريًا لكل منها — كافية لمسائل المسابقات والواجبات وكثير من عروض المقياس التشفيري — وصغيرة بما يكفي ليبقى BigInt النقي في Worker تفاعليًا دون إطلاق رزمة متعددة الدقة ثقيلة. إن احتجت مقاييس بمليون رقم أو تفكيكات بنظرية الباقي الصيني أو بدائيات تشفير بزمن ثابت فأنت بحاجة إلى مكتبة مخصّصة؛ أداة parse الخفيفة هذه هي عمدًا الحاسبة وخطوة API المشتركة للقوى المعيارية الدقيقة.
أسئلة تقنية
ماذا يحدث إن كان المقياس أقل من 1؟
يجب أن يكون المقياس 1 على الأقل. المقاييس الصفرية أو السالبة لا تعرّف الباقي غير السالب القياسي المستخدم هنا وتعيد invalid_input.
هل حاسبة الرفع المعياري مجانية؟
أداة المتصفح مجانية وتعمل محليًا. تستخدم استدعاءات API رصيد KIT المدفوع مسبقًا بمبلغ $0.002 لكل طلب ناجح؛ المهام الفاشلة لا تُحاسب أبدًا.