حاسبة الخطوة الصغيرة والخطوة العملاقة للوغاريتم المنفصل
العدد 2 مرفوعًا إلى القوة 9 يعطي الباقي 5 عند القسمة على 13، لذلك فاللوغاريتم المنفصل للعدد 5 للأساس 2 بالمقياس 13 هو 9. أدخل الأساس والهدف والمقياس، أوليًا كان أو مركبًا، لتجد الأس. مجاني في متصفحك.
- مجاني
- يعمل في متصفحك
- دون تسجيل
- بياناتك لا تغادر جهازك
شغّل الأداة مجانًا
مثال محلول
- G
- 2
- H
- 5
- N
- 13
- X
- 9
- المعادلة
- 2^9 ≡ 5 (mod 13)
تجد هذه الحاسبة أساً غير سالب x يجعل g مرفوعاً إلى x مطابقاً للهدف h بترديد n. وخلافاً للحلول المقصورة على الحقول الأولية، فهي تعالج أيضاً المعاملات المركبة والأساسات غير المتباينة أولياً، وذلك باختزال المعادلة قبل البحث. تتضمن النتيجة البواقي المعيارية ومعادلة واضحة للتحقق. وإذا تعذر بلوغ الهدف انطلاقاً من المولد المحدد، أعاد الطلب خطأ إدخال صريحاً بدلاً من نتيجة فارغة ملتبسة، مما يجعل الأداة مناسبة للبرامج والدروس والفحوص القابلة للتكرار.
حدد المعادلة الترديدية بدقة
أدخل ثلاثة أعداد صحيحة: يمثل g المولد أو الأساس، ويمثل h الهدف، ويمثل n المعامل. تبحث الحاسبة عن x غير سالب يحقق تطابق g^x مع h بترديد n. تقبل الأداة الأساسات والأهداف السالبة، ثم تحولها إلى الباقي القياسي الواقع بين الصفر وn ناقص واحد.
وتعيد الاستجابة هذه القيم المعيارية كي تتمكن من مراجعة المسألة التي حُلت فعلياً، حتى إن كانت المدخلات الأصلية خارج ذلك المجال. يجب ألا يقل المعامل عن اثنين، ويمكن أن يكون أولياً أو مركباً ضمن الحد المنشور. يُفحص الأس صفر أولاً وفق الاصطلاح المعتاد الذي يجعل g^0 مساوياً للواحد بترديد n، ولذلك يعطي الهدف المطابق للواحد x مساوياً للصفر مباشرة.
تتضمن الاستجابة الناجحة x والمعاملات المعيارية واسم الطريقة ومعادلة تحقق مقروءة. وبذلك يسهل فحصها يدوياً أو اعتمادها في الاختبارات الآلية من دون إعادة تركيب نص العرض في كل تطبيق عميل.
افهم الخطوات الصغيرة والخطوات العملاقة
يجرب البحث المباشر الأسس تباعاً، وقد يحتاج إلى عدد من عمليات الضرب الترديدي يتناسب مع المعامل. أما طريقة الخطوة الصغيرة والخطوة العملاقة فتستبدل جزءاً من الذاكرة بسرعة أكبر. تختار عرضاً قريباً من الجذر التربيعي لمجال البحث، وتحفظ القوى الصغيرة المتتابعة للأساس في جدول، ثم تتقدم عبر الهدف بقفزات تساوي ذلك العرض.
وعند تطابق باقٍ، تجمع دليلي الخطوتين لاستعادة الأس. لذلك يكون حجم الجدول وعدد القفزات من رتبة الجذر التربيعي لـn. هذا التنفيذ حتمي؛ فهو لا يسحب مرشحين عشوائياً، ولا يعتمد على بذرة عشوائية، ولا يتصل بخدمة، ولا يستخدم الساعة.
وإذا لم تكن المدخلات متباينة أولياً، طبقت الصيغة الموسعة أولاً. تزال القواسم المشتركة واحداً بعد آخر مع حفظ إزاحة للأس ومضاعف. وإذا جعل قاسم ما الهدف غير قابل للوصول، تُرفض المعادلة فوراً.
وحين يصبح للأساس المختزل معكوس، يبدأ البحث في الجدول ثم تضاف الإزاحة النهائية. وقبل إخراج النتيجة، يُتحقق من الأس المرشح بصورة مستقلة باستعمال الرفع الترديدي للقوة.
الحدود والحالات التي لا حل لها
لا يوجد لوغاريتم منفصل لكل مسألة بالضرورة. فقد تمر قوى g بجزء فقط من البواقي بترديد n، ويبقى h خارج المتتالية المولدة. تنتج الأعداد غير الصحيحة والحقول الناقصة والمعاملات الواقعة خارج الحد فئة الخطأ نفسها مع رسائل أدق.
تزداد الكلفة الحسابية بحسب الجذر التربيعي للمعامل المختزل لأن الخوارزمية تنشئ جدولاً في الذاكرة؛ ولذلك يمنع الحد تخصيص ذاكرة مفرطة ويبقي التنفيذ مقيداً. استخدم معاملات معتدلة للتعليم وإنشاء متجهات الاختبار وحل الألغاز والتشخيص. ليست هذه وسيلة لاسترداد أسرار المجموعات التعمية العملية، إذ تتجاوز أحجامها هذا الحد عمداً.
حالات الاستخدام
التحقق من تمارين الحساب الترديدي
تحقق من معادلة تعليمية واحصل على الأس مع صيغة تطابق مقروءة يمكن تعويضها في المسألة.
إنشاء متجهات اختبار حتمية
أنشئ إجابات معلومة لاختبار شيفرة الرفع الترديدي، بما في ذلك المعاملات المركبة والعوامل المشتركة.
الأسئلة الشائعة
هل يجب أن يكون المعامل عدداً أولياً؟
لا. يدعم الاختزال الموسع المعاملات الأولية والمركبة، بما في ذلك حالات كثيرة يشترك فيها g وn في عامل.
أي أس تعيده الأداة؟
يبحث المحلل في الأسس غير السالبة، ويعالج الصفر صراحة، ثم يعيد حلاً متحققاً منه بطريقة BSGS.
لماذا يوجد حد للمعامل؟
تستهلك الطريقة وقتاً وذاكرة من رتبة الجذر التربيعي. يجعل الحد جدول التجزئة ومدة التنفيذ قابلين للتوقع.
ماذا يحدث إذا لم يوجد أي أس؟
قد لا تبلغ قوى الأساس إلا بعض البواقي بالمقياس n، فيبقى الهدف بعيد المنال. وعندها تحصل على رسالة واضحة بأنه لا يوجد أس، بدل جواب فارغ أو مضلل.
لماذا تكون هذه الطريقة أسرع من تجربة الأسس واحدًا تلو الآخر؟
قد يتطلب البحث المباشر عدد خطوات يقارب حجم المقياس. أما هذه الطريقة فتحفظ جدولًا للقوى الصغيرة ثم تتقدم بقفزات كبيرة، فيكلّف كل جزء نحو الجذر التربيعي للعدد n.
أدوات ذات صلة
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/numth/baby-step-giant-step \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"g":2,"h":5,"n":13}'const res = await fetch("https://api.kit.forhosting.com/numth/baby-step-giant-step", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"g": 2,
"h": 5,
"n": 13
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/numth/baby-step-giant-step",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"g": 2,
"h": 5,
"n": 13
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/numth/baby-step-giant-step", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"g":2,"h":5,"n":13}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"g":2,"h":5,"n":13}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/numth/baby-step-giant-step", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"g": 2,
"h": 5,
"n": 13
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "numth.baby_step_giant_step",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الحدود
max_n | 1000000000000 |
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |
ملاحظات تقنية
حدد المعادلة الترديدية بدقة
يمكن إرسال القيم كأعداد JSON صحيحة أو كسلاسل من الأرقام، وهو أمر مفيد عندما يصعب على لغة العميل تمثيل قيمة مباشرة.
تعامل مع الحدود والإخفاقات واستخدام API
عندئذ تصدر هذه القدرة خطأ invalid_input برسالة توضح عدم وجود أس. هذا السلوك مقصود ومفيد في مسارات العمل التي ينبغي أن تتوقف خطوتها التالية عند غياب الحل؛ ويمكنك معالجة رمز الخطأ القياسي من دون البحث عن حقول فارغة. يشغل المتصفح المحلل النقي نفسه الذي تشغله API. وتكلف كل معالجة آلية $0.002 لكل عنصر، من دون حساب يعتمد على الشبكة أو نتائج غير حتمية.
حالات التكامل
اكتشاف الأهداف غير القابلة للوصول
استخدم خطأ invalid_input القياسي لإيقاف المسار عندما لا ينتمي الهدف إلى متتالية القوى التي يولدها g.
أسئلة تقنية
ماذا يحدث إذا لم يوجد لوغاريتم منفصل؟
يفشل الطلب بالرمز invalid_input ورسالة تفيد بعدم وجود أس للقيم المقدمة.
كم تبلغ تكلفة استدعاء API؟
تكلفة كل عنصر هي $0.002. تستخدم أداة المتصفح المكتبة النقية نفسها للحساب التفاعلي.