التحقق من إمكان تمثيل مبلغ بعملتين أوليتين نسبيا
اعرف إن كان يمكن تكوين مبلغ دقيق من فئتين من العملات: مع قطع من فئة 4 وفئة 7 يتكوّن المبلغ 23 من أربع قطع من فئة 4 وقطعة من فئة 7. وإن لم تصلح أي تركيبة أُخبرت بذلك بوضوح. مجاني في متصفحك.
- مجاني
- يعمل في متصفحك
- دون تسجيل
- بياناتك لا تغادر جهازك
شغّل الأداة مجانًا
مثال محلول
- العملة a
- 4
- العملة b
- 7
- الهدف
- 23
- عدد a
- 4
- عدد b
- 1
تحدد أداة التحقق من التمثيل بعملتين ما إذا كان من الممكن تكوين هدف غير سالب باستعمال أي عدد غير سالب من فئتين نقديتين محددتين. يجب أن تكون الفئتان أوليتين نسبيا، وهو شرط يتيح حلا دقيقا بالحسابيات النمطية. عندما يكون الهدف قابلا للتمثيل، تتضمن النتيجة زوجا دقيقا من أعداد العملات؛ وإلا فتوضح عدم وجود مثل هذا الزوج. تفيد الأداة في التجارب العددية، وتمارين الرياضيات المتقطعة، وتصميم الفئات، والتحقق من التركيبات ذات الحجم الدقيق من دون بحث شامل.
حددوا مسألة العملتين بدقة
الصفر هدف صالح لأن اختيار صفر من كل عملة ينتجه. كما أن الفئة ذات القيمة واحد صالحة وتجعل كل هدف غير سالب قابلا للتمثيل. يجب أن تكون المدخلات الثلاثة أعدادا صحيحة آمنة؛ فترفض الأداة القيم العشرية والنصوص الرقمية والقيم اللانهائية والأعداد خارج النطاق الدقيق في JavaScript بدلا من تقريبها خفية.
ويجب أيضا أن تكون الفئتان أوليتين نسبيا، أي أن يكون القاسم المشترك الأكبر لهما واحدا، وهو ما تتحقق منه الأداة قبل الحل.
افهموا طريقة الحساب النمطي
بما أن الفئتين أوليتان نسبيا، فإن للفئة الأولى معكوسا ضربيا بترديد الفئة الثانية. بعد طرح القيمة التي تسهم بها العملات الأولى من الهدف، يتبقى فرق. أما إذا كان الفرق سالبا، فلا يوجد تمثيل غير سالب.
تعمل الطريقة بزمن لوغاريتمي ولا تجرب أعدادا كثيرة من العملات واحدا تلو الآخر.
فسروا النتائج وأخطاء الإدخال
وعند ضرب كل عدد في فئته المقابلة، يعاد تكوين الهدف بدقة. الزوج المعاد هو حل صالح واحد؛ فقد يكون للهدف الكبير بما يكفي تمثيلات متعددة، ولا تدعي الأداة تعدادها كلها أو تحسينها. تحذف الإجابة الخاطئة حقلي العددين لعدم وجود زوج مناسب.
ميزوا بين خطأ الفئتين غير الأوليتين نسبيا والنتيجة الخاطئة. تعني النتيجة الخاطئة أن المدخلات تستوفي العقد، لكن الهدف المحدد لا يمكن تكوينه. أما الخطأ فيعني أن زوج الفئات خارج المجال المحدد لهذه القدرة، ولذلك لا يصدر قرار بشأن قابلية التمثيل.
فمثلا تشترك العملتان 6 و9 في العامل 3، ومن ثم ترفضان حتى عندما يقبل الهدف القسمة على 3. يمنع هذا الفصل الخلط بين مخالفة المجال والاستحالة الرياضية.
حالات الاستخدام
تحققوا من مبلغ دفع دقيق
حددوا ما إذا كانت فئتان متاحتان قادرتين على تكوين المجموع المطلوب، واحصلوا على زوج من الأعداد عندما يكون ذلك ممكنا.
راجعوا تمرينا في نظرية الأعداد
اختبروا هدفا لفئتين أوليتين نسبيا، وقارنوا الحل المعاد بحسابكم اليدوي.
تحققوا من تركيبات الأحجام الثابتة
مثلوا حجمي عبوة أوليين نسبيا كعملتين، وتحققوا من إمكان تجميع كمية دقيقة من دون عبوات جزئية.
الأسئلة الشائعة
لماذا يجب أن تكون العملتان أوليتين نسبيا؟
تتبع هذه القدرة عقد العملتين الأوليتين نسبيا، وهو ما يضمن المعكوس النمطي الذي تستعمله الخوارزمية المباشرة. يرفض أي زوج له قاسم مشترك أكبر من واحد.
هل تعيد الأداة جميع التركيبات الممكنة؟
لا. تقرر الأداة قابلية التمثيل وتعيد حلا واحدا عند وجوده، ولا تعدد كل الأزواج الممكنة أو تحسنها.
هل يمكن أن يكون الهدف صفرا؟
نعم. يمكن تمثيل الصفر باستعمال صفر من كل فئة نقدية.
هل يمكنني دفع 23 بقطع من فئة 4 وفئة 7؟
نعم. أربع قطع من فئة 4 وقطعة واحدة من فئة 7 تساوي 23 بالضبط، وهذه هي التركيبة التي تعيدها الأداة في هذه الحالة. وتكفي تركيبة صالحة واحدة للإجابة بنعم.
ما الفرق بين الجواب «لا» وظهور خطأ؟
الجواب «لا» يعني أن الفئتين مقبولتان لكن المبلغ المطلوب لا يمكن تكوينه بالضبط. أما الخطأ فيعني أن الفئتين تشتركان في عامل، مثل 6 و9 اللتين تشتركان في 3، فلا يُعطى جواب عن المبلغ.
أدوات ذات صلة
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/numth/coin-representable-two \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"coin_a":4,"coin_b":7,"target":23}'const res = await fetch("https://api.kit.forhosting.com/numth/coin-representable-two", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"coin_a": 4,
"coin_b": 7,
"target": 23
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/numth/coin-representable-two",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"coin_a": 4,
"coin_b": 7,
"target": 23
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/numth/coin-representable-two", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"coin_a":4,"coin_b":7,"target":23}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"coin_a":4,"coin_b":7,"target":23}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/numth/coin-representable-two", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"coin_a": 4,
"coin_b": 7,
"target": 23
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "numth.coin_representable_two",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |
ملاحظات تقنية
حددوا مسألة العملتين بدقة
أدخلوا فئتين نقديتين صحيحتين موجبتين في coin_a وcoin_b، ثم أدخلوا هدفا صحيحا غير سالب. تبحث الأداة عن عددين صحيحين غير سالبين count_a وcount_b بحيث يساوي حاصل ضرب عدد العملات الأولى في coin_a، مضافا إليه حاصل ضرب عدد العملات الثانية في coin_b، قيمة الهدف تماما. لذلك لا تعني النتيجة القابلة للتمثيل إيجاد قيمة قريبة أو تركيبة دون ميزانية معينة، بل يجب أن تتحقق المساواة بدقة وألا يكون أي من العددين سالبا.
افهموا طريقة الحساب النمطي
تحسب الأداة هذا المعكوس بخوارزمية إقليدس الموسعة، ثم تستعمله لتحديد المرشح الوحيد للقيمة count_a بين الصفر وcoin_b ناقص واحد الذي يحقق التطابق المطلوب. إذا كان الفرق غير سالب، فإنه يقبل القسمة على coin_b ويعطي قيمة صالحة لـcount_b؛ وعندئذ تعرض الإجابة العددين بوصفهما دليلا ملموسا. هذه نتيجة كاملة وليست تخمينا، لأن أي حل صحيح آخر يغير count_a بمضاعف صحيح كامل من coin_b، ويغير count_b في الاتجاه المعاكس بمضاعف صحيح كامل من coin_a. وبما أن الحساب يبدأ بأصغر مرشح غير سالب لـcount_a، فلا يمكن إصلاح فرق سالب من دون جعل count_a سالبا.
فسروا النتائج وأخطاء الإدخال
تتضمن الإجابة التي تكون فيها representable صحيحة القيمتين count_a وcount_b. الحساب حتمي، ولا يستعمل أي خدمة شبكية، ويعيد النتيجة نفسها للمدخلات الصحيحة الدقيقة ذاتها في المتصفح وعبر API.
أسئلة تقنية
ما معنى أن يكون الهدف قابلا للتمثيل؟
يعني أن الهدف يساوي coin_a مضروبة في count_a مضافا إليها coin_b مضروبة في count_b، لأعداد صحيحة غير سالبة.
هل تتضمن النتيجة الصحيحة تركيبة فعلية؟
نعم. تعيد الإجابة count_a وcount_b بوصفهما تركيبة دقيقة غير سالبة تعيد تكوين الهدف.
ما تكلفة طلب API؟
تبلغ تكلفة كل طلب API $0.002. ويمكن لإصدار المتصفح تنفيذ الحساب الحتمي نفسه محليا.