حاسبة التباديل والتوافيق
اعرف بكم طريقة يمكن اختيار r عنصرًا من أصل n: اختيار 2 من 5 يعطي 10 توافيق عندما لا يهم الترتيب، بينما تعدّ التباديل كل ترتيب على حدة. النتائج أعداد صحيحة دقيقة لأي n حتى 1000. مجاني في متصفحك.
- مجاني
- يعمل في متصفحك
- دون تسجيل
- بياناتك لا تغادر جهازك
شغّل الأداة مجانًا
مثال محلول
- إجمالي العناصر (n)
- 5
- العناصر المختارة (r)
- 2
- وضع الحساب
- C
- النتيجة
- 10
أدخل n و r والوضع (تبديل أو توفيق) لتحصل على عدد صحيح دقيق كنص.
معنى P و C
P(n,r) يعد الاختيارات المرتبة لـ r من n دون إرجاع، و C(n,r) يعد الاختيارات غير المرتبة. يجب أن يكون n و r عددين صحيحين بين 0 و 1000 مع r ≤ n. يقبل mode القيم P/p/permutation/perm أو C/c/combination/comb ويُطبَّع الخرج إلى حرف كبير.
الأداة وواجهة البرمجة تشتركان في نفس الأوراكل حتى تتطابق الاختبارات حتى آخر رقم دون شبكة أو لغة محلية. لا يُرسل الإدخال خارج الجهاز في وضع الأداة.
جداءات BigInt بلا فواصل عائمة
التباديل تضرب ناتجًا تنازليًا من n لعدد r من العوامل. التوافيق تقسم قسمة صحيحة دقيقة في كل خطوة بعد استبدال r اختياريًا بـ min(r,n-r). لأن كل خطوة BigInt تبقى قيم مثل P(1000,3) و C(30,5) نصوصًا عشرية دقيقة بلا تدوين علمي.
تُرفض float والقيم المنطقية والأصفار البادئة مثل 01. الأداة وواجهة البرمجة تشتركان في نفس الأوراكل حتى تتطابق الاختبارات حتى آخر رقم دون شبكة أو لغة محلية. هذا يضمن تكرارًا كاملاً بين أوراكل مستقلة.
أخطاء وحدود موثوقة
الإشارة السالبة تعطي negativo. r أكبر من n تعطي range. القيم فوق 1000 تفشل على n أو r. النصوص الفارغة والزائد والنقاط العشرية أخطاء تنسيق.
العقد قصير بما يكفي لتتوافق أوراكل مستقلة على كل المتجهات. الأداة وواجهة البرمجة تشتركان في نفس الأوراكل حتى تتطابق الاختبارات حتى آخر رقم دون شبكة أو لغة محلية. لا اعتماد على ساعة النظام.
خرج مناسب للأنابيب
النجاح يعيد دائمًا n و r و mode (P|C) و result كنص و formula مثل C(5,2). الأداة تستخدم n كحقل رئيسي. الإصدار الأول يتجاوز التكرار والمتعدد الحدود.
الأداة وواجهة البرمجة تشتركان في نفس الأوراكل حتى تتطابق الاختبارات حتى آخر رقم دون شبكة أو لغة محلية. يمكن توسيع النطاق في إصدارات لاحقة بعد التوقيع.
حالات الاستخدام
واجبات
التحقق من nPr/nCr فورًا.
سحوبات
عد C(n,r).
ترتيب
عد P(n,r).
CI
تثبيت نصوص دقيقة.
الأسئلة الشائعة
ما الفرق بين التبديل والتوفيق؟
التبديل يعدّ الاختيارات المرتبة، فاختيار A ثم B يختلف عن B ثم A. أما التوفيق فيتجاهل الترتيب. اختيار 2 من 5 يعطي 10 توافيق وضعفها من التباديل، لأن كل زوج يمكن ترتيبه بطريقتين.
أيهما أستخدم لحساب سحوبات اليانصيب؟
استخدم التوافيق، لأن ترتيب ظهور الأرقام لا يغيّر البطاقة. أما في توزيع المقاعد أو مراكز منصة التتويج، حيث يهم الترتيب، فاستخدم التباديل.
هل يمكن أن يكون r أكبر من n؟
لا. لا يمكنك اختيار عناصر أكثر مما لديك، لذلك يجب أن يكون r مساويًا لـ n أو أصغر منه. ويجب أن يكون كلاهما عددًا صحيحًا من 0 إلى 1000، ويُرفض أي شيء خارج هذا النطاق.
هل تحسب الأداة الاختيارات مع التكرار؟
لا. يفترض كل حساب أن العنصر الذي اختير مرة لا يمكن اختياره مرة أخرى. الاختيارات مع التكرار والمعاملات متعددة الحدود غير مشمولة، فتأكد أن مسألتك تقوم على السحب دون إرجاع.
أدوات ذات صلة
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/dev/permutation-combination \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"n":5,"r":2,"mode":"C"}'const res = await fetch("https://api.kit.forhosting.com/dev/permutation-combination", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"n": 5,
"r": 2,
"mode": "C"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/permutation-combination",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"n": 5,
"r": 2,
"mode": "C"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/permutation-combination", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"n":5,"r":2,"mode":"C"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"n":5,"r":2,"mode":"C"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/permutation-combination", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"n": 5,
"r": 2,
"mode": "C"
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.permutation_combination",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الحدود
max_n | 1000 |
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |
ملاحظات تقنية
معنى P و C
بعد trim أي mode مجهول يعطي invalid_input.
أخطاء وحدود موثوقة
نقص n أو r أو mode يعطي invalid_input.
أسئلة تقنية
هل r > n؟
لا. يُعاد range.
كسور عشرية؟
ليس في v1.
أقصى n؟
1000 شامل.
نوع result؟
نص عشري للعدد الصحيح.
المتصفح مجاني؟
نعم. الواجهة $0.002.
float؟
لا. BigInt فقط.