مبرهنة فيرما الصغيرة
باقي قسمة 2 مرفوعًا إلى 6 على 7 هو 1، تمامًا كما تتوقع مبرهنة فيرما الصغيرة. أدخل أساسًا a وعددًا أوليًا p فتحصل على باقي a مرفوعًا إلى p ناقص 1 على p، ويُفحص p أولًا فلا يمر عدد مركّب على أنه أولي. مجاني في متصفحك.
- مجاني
- يعمل في متصفحك
- دون تسجيل
- بياناتك لا تغادر جهازك
شغّل الأداة مجانًا
مثال محلول
- الأساس
- 2
- عدد أولي
- 7
- الأساس المختزل
- 2
- الأس
- 6
- الباقي
- 1
- التعبير
- 2^{6} ≡ 1 (mod 7)
تبرهن مبرهنة فيرما الصغيرة أنه إذا كان p أوليًا وa عددًا صحيحًا لا يقبل القسمة على p فإن a مرفوعًا إلى p ناقص واحد يطابق واحدًا modulo p. تسند هذه المطابقة اختبارات أولية فيرما والمعكوسات في حقل أولي ومسائل المسابقات التي تطلب اختزال قوة هائلة دون بسطها. تقبل هذه الحاسبة أساسًا a ومعاملًا أوليًا p، وتتحقق من أن p أولي فعلًا، ثم تعيد الباقي الدقيق لـ a إلى p ناقص واحد modulo p برَفع معياري BigInt حتمي. عندما يكون a وp أوليين فيما بينهما يكون الباقي واحدًا، وتلك هي المبرهنة؛ وعندما يقسم p العدد a يكون الباقي صفرًا.
ماذا تقول مبرهنة فيرما الصغيرة وما معنى الباقي
تقول مبرهنة فيرما الصغيرة إنه إذا كان p عددًا أوليًا وa عددًا صحيحًا ليس مضاعفًا لـ p فإن a مرفوعًا إلى p ناقص واحد يطابق واحدًا modulo p. وبالرموز: a إلى p ناقص واحد مطابق لواحد mod p. والصيغة المكافئة التي تبقى صحيحة حتى عندما يقسم p العدد a هي a إلى p مطابق لـ a modulo p.
الصيغة الأولى هي ما تقيّمه هذه القدرة: تحسب باقي a إلى p ناقص واحد modulo p وتعيده نتيجةً أساسية. عندما يكون a وp أوليين فيما بينهما يكون الباقي دائمًا واحدًا، وتلك هي المبرهنة؛ وهي التحقق الذي يكتبه المتعلمون في الواجبات والهوية المستخدمة لعكس a modulo p برفع a إلى p ناقص اثنين. عندما يقسم p العدد a تنهار القوة إلى صفر modulo p لأن كل قوة موجبة لمضاعف p تبقى مضاعفًا لـ p، فيكون الباقي صفرًا وعلامة coprime خاطئة.
وتُقبل الأسس السالبة وتُختزل إلى النطاق من صفر إلى p ناقص واحد قبل الرفع، فيبقى الباقي غير سالب ويوافق عرف الصف المعتاد في الحساب المعياري.
عقد الإدخال والخوارزمية وسلوك الخطأ
وتُحدّ القيم المطلقة بسقف الأعداد الصحيحة الآمنة في JavaScript حتى يبقى كل جداء معياري وسيط دقيقًا تحت BigInt. بعد التحليل يختبر المعالج أن p أولي بالقسمة التجريبية للقيم المتواضعة وبمجموعة حتمية من أسس Miller–Rabin للأعداد الصحيحة الآمنة الأكبر. إذا كان p مركّبًا أو واحدًا أو صفرًا أو سالبًا يفشل الطلب برسالة تسمّي prime وتبيّن أن القيمة ليست أولية؛ ولا تُفوتر تلك الإخفاقات.
مثال: الأساس اثنان والأولي سبعة يعطيان الباقي واحدًا، لأن اثنين إلى السادسة أربعة وستون وأربعة وستون ناقص تسعة أمثال سبعة يساوي واحدًا. مثال: الأساس عشرة والأولي خمسة يعطيان الباقي صفرًا لأن خمسة تقسم عشرة. اقرنوا الاستجابة بملاحظاتكم إن احتجتم برهانًا مكتوبًا؛ يعيد هذا المسار الباقي والعلامات لا اشتقاقًا نثريًا خطوة بخطوة.
أين تبرّر واجهة باقي فيرما وجودها
تستخدم مقررات نظرية الأعداد ومنصات المسابقات حاسبة مبرهنة فيرما الصغيرة ليؤكّد المتعلمون a إلى p ناقص واحد modulo p دون تنفيذ الرفع المعياري يدويًا ودون الخلط بين مركّب كاذب لفيرما وعدد أولي. وتستدعي دفاتر البحث والسكربتات الترفيهية العقد نفسه عندما تريد وحيًا مستقلًا لمثال منشور: يجب أن يكون اثنان إلى السادسة modulo سبعة واحدًا، وثلاثة إلى الرابعة modulo خمسة واحدًا، ويجب رفض معامل مركّب مثل تسعة بدل اختزاله.
وتحتاج ورش التشفير التي تقدّم اختبارات أولية فيرما أو المعكوسات في حقل أولي إلى أداة ترفض معاملًا مركّبًا، لأن النقطة التعليمية هي فرضية المبرهنة لا قوة معيارية صامتة تبدو معقولة. ولا يستهلك التحقق الفاشل رصيدًا. وعاملوا خطأ غير الأولي نتيجة من الدرجة الأولى في مجموعتكم: ذلك هو العقد الذي يمنع كاذب فيرما من أن يُصحَّح كنجاح.
حالات الاستخدام
تحققات الصف والواجبات
دعوا المتعلمين يرسلون أساسًا وأوليًا مدّعى وتحققوا من أن a^(p−1) mod p يساوي واحدًا عندما يكون الزوج أوليين فيما بينهما، أو أن معاملًا مركّبًا يُرفض.
مختبرات التشفير والمعكوسات في حقل أولي
أكّدوا a^(p−2) معكوسًا لـ a modulo الأولي p بالتحقق أولًا من أن a^(p−1) ≡ 1 (mod p) على الزوج نفسه، دون تضمين روتين رفع معياري.
الأسئلة الشائعة
ماذا يحدث إذا لم يكن المعامل أوليًا؟
تتطلب مبرهنة فيرما الصغيرة معاملًا أوليًا؛ ولا تُختزل القيم المركّبة ولا تُفوتر.
متى يساوي الباقي واحدًا؟
كلما كان p أوليًا وgcd(a, p) = 1. ذلك هو البيان الكلاسيكي لمبرهنة فيرما الصغيرة. إذا قسم p العدد a فالباقي صفر.
هل تُقبل الأسس السالبة؟
نعم. يُختزل الأساس السالب إلى النطاق 0 حتى p−1 قبل الرفع، فيكون الباقي هو الباقي غير السالب المعتاد.
ماذا يحدث إذا كان الأساس من مضاعفات p؟
يكون الباقي 0، لأن كل قوة موجبة لمضاعف p تبقى من مضاعفات p. وهذه هي الحالة الوحيدة التي لا يتحقق فيها شرط المبرهنة، وتُظهر النتيجة أن a وp ليسا أوليين فيما بينهما.
كيف تُستخدم المبرهنة لإيجاد مقلوب عدد بالمقياس p؟
عندما لا يشترك a وp في أي عامل، يكون a مرفوعًا إلى p ناقص 2 هو مقلوب a بالمقياس p، لأن ضربه في a يعطي a مرفوعًا إلى p ناقص 1، وباقيه 1. وتؤكد هذه الحاسبة ذلك الباقي.
أدوات ذات صلة
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/math/fermats-little-theorem \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"base":2,"prime":7}'const res = await fetch("https://api.kit.forhosting.com/math/fermats-little-theorem", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"base": 2,
"prime": 7
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/math/fermats-little-theorem",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"base": 2,
"prime": 7
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/math/fermats-little-theorem", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"base":2,"prime":7}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"base":2,"prime":7}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/math/fermats-little-theorem", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"base": 2,
"prime": 7
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "math.fermats_little_theorem",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الحدود
max_abs | 9007199254740991 |
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |
ملاحظات تقنية
تُرفض المعاملات المركّبة ب invalid_input بدل باقٍ مضلّل، حتى لا تعامل سكربتات الواجبات مركّبًا كاذبًا لفيرما على أنه أولي. وتغذي الوحدة النقية نفسها ودجت المتصفح المجاني ومسار API.
ماذا تقول مبرهنة فيرما الصغيرة وما معنى الباقي
وتعيد الحاسبة أيضًا الأس p ناقص واحد، وقيمة منطقية تسجّل ما إذا كان a وp لا يشتركان في عامل، وعلامة congruent_to_one تكون صحيحة فقط عندما يكون الباقي واحدًا، وسلسلة مطابقة قصيرة يمكنكم طباعتها بجانب الإجابة. لا تُختزل المعاملات المركّبة: تفشل المهمة ب invalid_input حتى لا يتنكّر كاذب فيرما مثل ثلاثمائة وواحد وأربعين في هيئة أولي. ويسير مسار BigInt الحتمي نفسه في ودجت المتصفح وعلى API، فلا يختلف تحقق صفّي وسكربت تصحيح على باقٍ.
عقد الإدخال والخوارزمية وسلوك الخطأ
أرسلوا جسم JSON عبر POST بحقلين صحيحين إلزاميين: base وهو العدد الصحيح a للقوة، وprime وهو المعامل p الذي يجب أن يكون أوليًا لا يقل عن اثنين. تُقبل الأسماء البديلة a لـ base وp أو modulus أو mod لـ prime حتى لا تحتاج نماذج الصف التي تسمّي الزوج كذلك إلى إعادة كتابة. قد يصل كل حقل كعدد JSON صحيح أو كسلسلة أرقام؛ وتفشل القيم المنطقية والسلاسل الفارغة والكسور والقيم غير المنتهية ب invalid_input مع تسمية الحقل. عند النجاح يعيد الجسم base وprime، ويبلّغ reduced_base مساويًا لـ a modulo p من صفر إلى p ناقص واحد، ويبلّغ exponent مساويًا لـ p ناقص واحد، ويبلّغ residue مساويًا لـ reduced_base مرفوعًا إلى ذلك الأس modulo p. وتتيح علامتا coprime وcongruent_to_one للمصحح تأكيد البيان الكلاسيكي دون إعادة اشتقاق القوة.
أين تبرّر واجهة باقي فيرما وجودها
ولأن التنفيذ parse نقي من المستوى A، تكلف كل مكالمة ناجحة السعر الأساسي المنشور $0.002 دون رموز نموذج ودون شبكة صادرة. أبقوا الطلبات داخل حدود الأعداد الصحيحة المنشورة، وثبّتوا الباقي وعلامة congruent_to_one في الاختبارات، فتحصلون على باقٍ لفيرما قابل لإعادة الإنتاج للواجبات وإضافات LMS وعُمّال الحافة دون إقامة نظام جبر حاسوبي خاص بكم.
حالات التكامل
تصحيح آلي للاختبارات وأنظمة LMS
صحّحوا بنود مبرهنة فيرما الصغيرة بوحي حتمي يفشل المعاملات المركّبة كـ invalid_input بدل إعادة باقٍ قد يعامله مصحح معطوب على أنه نجاح.
أسئلة تقنية
ماذا تعيد حاسبة مبرهنة فيرما الصغيرة هذه؟
أرسلوا العددين الصحيحين base (a) وprime (p). تعيد API القيمة residue = a^(p−1) mod p إضافة إلى reduced_base وexponent p−1 وcoprime وcongruent_to_one وسلسلة مطابقة قصيرة.
كم تكلفة حاسبة مبرهنة فيرما الصغيرة؟
أداة المتصفح مجانية. تستخدم طلبات API رصيد KIT المدفوع مقدمًا بسعر $0.002 لكل استدعاء ناجح؛ ولا تُفوتر المدخلات غير الصالحة.