تباديل عناصر متكررة
يمكن إعادة ترتيب حروف كلمة BANANA في 60 كلمة مختلفة: ستة حروف، يتكرر فيها A ثلاث مرات وN مرتين. أدخل العدد الكلي وعدد تكرار كل عنصر متطابق لتحصل على العدد الدقيق للترتيبات المختلفة. مجانية في متصفحك.
- مجاني
- يعمل في متصفحك
- دون تسجيل
- بياناتك لا تغادر جهازك
شغّل الأداة مجانًا
مثال محلول
- N
- 6
- التكرارات
- 3, 2, 1
- الكمية
- 60
إذا كان لديكم n جسمًا وكان بعضها نسخًا لا تُميَّز، فإن عدد المتتاليات المختلفة هو عاملي n مقسومًا على جداء عاملي كل تكرار مدرج. تقبل هذه الحاسبة ذلك الزوج — المجموع n وقائمة التكرارات — وتقيّم الهوية بحساب BigInt دقيق، وتعيد عدد التباديل سلسلةً عشرية. لا عيّنة ولا نداء شبكة ولا تقريب يعتمد على الساعة: كل زوج صالح يعطي العدد الصحيح نفسه في كل مرة.
كم ترتيبًا مختلفًا تصنعه العناصر المتطابقة
اكتبوا n لعدد المواضع (أو الأجسام) الكلي، و n1 و n2 حتى nk لعدد مرات ظهور كل نوع لا يُميَّز. ولأن مبادلة نسختين من النوع نفسه لا تنشئ ترتيبًا جديدًا، فإن ترتيبات عاملي n لمجموعة موسومة بالكامل تُفرط في العد بعاملي n1 للنوع الأول وعاملي n2 للثاني وهكذا. الهوية الدقيقة إذن هي عاملي n مقسومًا على جداء تلك العامليات.
تشمل فحوص القاعة الكلاسيكية حروف BANANA: ستة أحرف، ثلاث A واثنتان N وواحدة B، فيعطي عاملي ستة على عاملي ثلاثة في عاملي اثنين في عاملي واحد ستين كلمة متمايزة، و MISSISSIPPI: أحد عشر حرفًا بتكرارات واحد وأربعة وأربعة واثنين، فيعطي عاملي أحد عشر على تلك العامليات أربعة وثلاثين ألفًا وستمائة وخمسين. هذا ليس جداء n مرفوعًا إلى r الذي تسميه بعض الكتب أيضًا تباديل مع تكرار: ذلك العدّ الآخر يملأ r خانات مستقلة من ألفبائية فيها n رمزًا ويساوي n مرفوعًا إلى r.
إذا كان تكرار مدرج أكبر من n فالمجموعة مستحيلة وترفض هذه الحاسبة الطلبية بدل إرجاع صفر أو امتداد بإشارة. التكرارات التي مجموعها أقل من n تترك عناصر فريدة متبقية؛ كل متبقٍ يسهم بعاملي واحد في المقام ولا يغيّر العدد الصحيح، فتبقى الصيغة نفسها سارية. لا تعيّن التنفيذ ولا يعتمد على الساعة ولا يقرّب: يقيّم عاملي n على جداء العامليات المدرجة بحساب BigInt دقيق كي تبقى الأعداد الكبيرة أعدادًا صحيحة دقيقة بدل أن تفيض عن أجزاء العائمة.
حالات الاستخدام
جناسات متمايزة لكلمة بحروف مكررة
عُدّوا كم إعادة ترتيب متمايزة لكلمة مثل BANANA أو MISSISSIPPI بإرسال مجموع الحروف n ومدرج كل حرف مكرر.
الأسئلة الشائعة
بماذا تختلف عن تباديل n مرفوعًا إلى r مع التكرار؟
يملأ الجداء n^r r خانات مستقلة من ألفبائية فيها n رمزًا (الترتيب يهم وإعادة الاستخدام مسموحة). / (n1! n2! … nk!).
لماذا عدد التبديلة سلسلة؟
قيم n! / (n1! n2! …) الكبيرة تتجاوز الأعداد الصحيحة الآمنة في JavaScript. سلسلة عشرية تحفظ كل رقم بدقة لكل n مدعوم ولكل قائمة تعدادات تكرار.
ماذا لو كان مجموع التكرارات أقل من n؟
لا مشكلة في ذلك، فالعناصر المتبقية فريدة، وكل واحد منها يضيف إلى المقام عاملًا قيمته واحد، فلا يتغير الناتج وتبقى الصيغة نفسها صالحة.
ماذا يحدث إذا كان أحد التكرارات أكبر من العدد الكلي؟
تُرفض المدخلات، لأن مجموعة من العناصر المتطابقة لا يمكن أن تشغل مواضع أكثر مما تحتويه المجموعة كلها، فلا تُعاد قيمة صفر ولا رقم مختلق.
كيف أحسب عدد الكلمات المختلفة من حروف كلمة ما؟
اعتبر الحروف هي العناصر: أدخل عدد الحروف الكلي، ثم عدد مرات تكرار كل حرف. في كلمة MISSISSIPPI مثلًا هناك 11 حرفًا بتكرارات 1 و4 و4 و2.
أدوات ذات صلة
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/stat/permutation-with-repetition \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"n":6,"repeats":[3,2,1]}'const res = await fetch("https://api.kit.forhosting.com/stat/permutation-with-repetition", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"n": 6,
"repeats": [
3,
2,
1
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/stat/permutation-with-repetition",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"n": 6,
"repeats": [
3,
2,
1
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/stat/permutation-with-repetition", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"n":6,"repeats":[3,2,1]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"n":6,"repeats":[3,2,1]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/stat/permutation-with-repetition", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"n": 6,
"repeats": [
3,
2,
1
]
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "stat.permutation_with_repetition",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الحدود
max_n | 10000 |
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |
ملاحظات تقنية
عندما يكون أي تكرار مدرج أكبر من n تفشل الطلبية بـ invalid_input، لأن مجموعة لا تستطيع شغل مقاعد أكثر مما تحويه المجموعة. تشغّل الدالة النقية نفسها ودجة المتصفح المجانية ومسار API المدفوع مسبقًا، فلا تختلف مراجعة الواجبات ولا مصححات LMS ولا اختبارات الأنابيب.
كيف ترسلون المجموع وتعدادات التكرار
الحقل n هو العدد الكلي للعناصر — دليل بسط عاملي n — ويجب أن يكون عددًا صحيحًا من صفر إلى عشرة آلاف. تُقبل الكنيات total و N بالمعنى نفسه. ويجب أن يبقى مجموع التكرارات كذلك على الأكثر n، وإلا فاضت النسخ المدرجة عن المجموعة. تعيد الاستجابة الناجحة n ومصفوفة repeats المطبّعة، وترجع count سلسلةً عشرية للقيمة الدقيقة للتبديلة، وتتضمن formula الهوية n! /(n1! n2! … nk!) كي يعرضها العملاء أو يسجّلوها دون تثبيتها يدويًا. أرسلوا جسم JSON بحقلين إلزاميين. تُقابل الكنيتان repeat_counts و frequencies المصفوفة نفسها. يجب أن يكون كل تكرار عددًا صحيحًا من صفر إلى n ضمنًا؛ إذا كان أي مدخل أكبر من n تفشل المهمة بـ invalid_input ورسالة أن تعداد التكرار يتجاوز المجموع. التحقق الفاشل — غياب n أو repeats، غير صحيح، كسر، قيمة سالبة، قيمة فوق الحد المنشور، مصفوفة فارغة، أو أي تكرار يتجاوز n — يعيد invalid_input ولا يُحاسب أبدًا. التسعير $0.002 ثابت لكل طلبية ناجحة بوحدة item. استخدموا نقطة النهاية من فاحصات الجناس، ومدققي مسابقات البرمجة، وصناديق رمل التحضير للمقابلات، وأعمال إثراء الجداول، وعروض الرياضيات المتقطعة التي تحتاج عدد الترتيبات المتمايزة قبل أي خطوة احتمالية. فضّلوا العدد سلسلةً على فرض Number في JavaScript حتى لا تفقد القيم الأكبر من حد الأعداد الصحيحة الآمنة أرقامًا دنيا في نقل JSON.
جناسات ومقاعد ونبوءات المسابقات
يستخدم معلمو اللغة ومؤلفو الألغاز هذا العدد حين يسألون كم كلمة متمايزة يمكن تكوينها بإعادة ترتيب سلسلة معطاة: الحروف هي العناصر، ومدرج كل حرف هو قائمة تعدادات التكرار، والجواب هو عاملي n على جداء تلك العامليات تمامًا. مسائل الكيمياء والوراثة التي ترتب خرزًا أو قواعد أو مقاعد ملونة بنسخ لا تُميَّز تتبع العدد الصحيح نفسه. يمكن لمولّدات الامتحان تثبيت مسار النجاح بـ n يساوي ستة و repeats يساوي ثلاثة واثنين وواحدًا فينتج ستين، ومسار الرفض بأي تكرار أكبر من n فيجب أن يفشل بدل إرجاع صفر. اقرنوا العدد بشيفرة سردكم إن احتجتم السلاسل المتمايزة نفسها؛ هذه القدرة تعيد العدد الصحيح فقط. أبقوا n على الأكثر عشرة آلاف حتى ينتهي أسوأ عاملي بسرعة على عزل Worker وفي المتصفح، مع تغطية أحجام التدريس والمسابقة البعيدة جدًا عن نطاق Number الآمن. المهام الفاشلة التي تعيد invalid_input لا تستهلك الرصيد المدفوع مسبقًا، فيبقى استكشاف النصوص رخيصًا حين يكتب الطالب تكرارًا مستحيلًا وهو يتعلم العقد. ولأن التنفيذ parse خالص، تكلف كل مناداة ناجحة السعر الأساس المنشور $0.002 بلا رموز نموذج وبلا شبكة صادرة.
حالات التكامل
مراجعة واجبات وامتحانات لـ n! / n1! n2! …
دعوا الطلاب يرسلون مجموعًا وتعدادات تكرار لعناصر متماثلة ويقابلون جواب التبديلة مع التكرار المحسوب يدويًا، بما في ذلك الرفض الحاسم حين يتجاوز تكرارٌ n.
نبوءات مسابقات ومقاعد بنسخ متماثلة
استخرجوا عدد ترتيبات دقيقًا عند الحكم في مسائل تبديل المجموعات المتعددة أو تقدير خطط مقاعد تمزج نسخًا لا تُميَّز بعناصر فريدة متبقية.
أسئلة تقنية
ما التبديلة مع التكرار لعناصر متماثلة؟
تعدّ الترتيبات المرتبة المتمايزة لـ n عنصرًا حين يتعذّر تمييز بعضها. إذا كانت تعدادات التكرار n1 و n2 و… nk فإن العدد هو n! / (n1! × n2! × … × nk!).
ماذا يحدث إذا كان تعداد تكرار أكبر من المجموع؟
تفشل المهمة بـ invalid_input. لا تستطيع مجموعة عناصر متماثلة شغل مواضع أكثر مما تحويه المجموعة، لذا يجب أن يحقق كل تكرار مدرج 0 ≤ ni ≤ n.
كم تكلفة حاسبة التبديلة مع التكرار؟
أداة المتصفح مجانية وتعمل محليًا. تستخدم مناديات API رصيد KIT المدفوع مسبقًا بسعر $0.002 لكل طلبية ناجحة؛ ولا تُحاسب المدخلات غير الصالحة.