حاسبة مسألة المصافحة
اعرف عدد المصافحات عندما يصافح كل فرد في المجموعة الآخرين مرة واحدة: 5 أشخاص يعطون 10 مصافحات و4 أشخاص يعطون 6، ومجموع 10 يعود إلى 5 أشخاص. مجانًا في متصفحك.
- مجاني
- يعمل في متصفحك
- دون تسجيل
- بياناتك لا تغادر جهازك
شغّل الأداة مجانًا
مثال محلول
- عدد الأشخاص
- 5
- وضع الحساب
- forward
- المصافحات
- 10
- الحد الأقصى ل n
- 1,000,000
تجيب حاسبة مسألة المصافحة هذه عن سؤال التوافيقيات الكلاسيكي: إذا التقى n شخصًا وتصافح كل زوج منهم مرة واحدة بالضبط، فكم مصافحة تحدث؟ الصيغة المغلقة هي n choose 2، مكتوبة C(n, 2) = n(n − 1)/2، وهي نفس الأعداد المثلثية التي تظهر في نظرية الرسوم البيانية كعدد أضلاع الرسم البياني الكامل K_n. تشغّل الأداة أيضًا العملية العكسية: إذا أعطيت مجموع مصافحات هو قيمة C(n, 2) دقيقة، تسترجع عدد الأشخاص n الصحيح غير السالب الوحيد. من الفحوصات البسيطة التي ربما تعرفها بالفعل: خمسة أشخاص يعطون عشر مصافحات، وأربعة أشخاص يعطون ست مصافحات، وصفر أو شخص واحد يعطي صفر مصافحات. يستخدم المحرك حساب BigInt حتميًا فقط — بلا اتصال شبكي، ولا أخذ عيّنات، ولا اختصارات مرتبطة بالتاريخ.
ماذا تحسب مسألة المصافحة وما الذي تحتويه الاستجابة
مسألة المصافحة هي القصة اليومية وراء معامل ذات الحدين C(n, 2). كل مصافحة هي زوج غير مرتَّب من الأشخاص، لذا يكون المجموع هو عدد طرق اختيار شخصين من n بلا تكرار وبلا اعتبار للترتيب. وهذا يساوي بالضبط n مضروبة في n ناقص واحد، مقسومة على اثنين، لأنه يمكنك ترتيب الأشخاص في صف وإقران كل شخص مع كل من يليه في الصف دون عدّ مزدوج.
العدد نفسه هو عدد الأضلاع في الرسم البياني الكامل على n رأسًا، والعدد المثلثي رقم (n − 1) عند الفهرسة بعناية من الصفر، وتمرين تمهيدي قياسي في الرياضيات المتقطعة. تعيد هذه الحاسبة علامة وضع mode بقيمة forward أو inverse، وعدد الأشخاص n، ومجموع المصافحات الدقيق كسلسلة عشرية، ونص صيغة موجزًا مثل C(5, 2) = 5*(5-1)/2، والحد الأقصى المنشور ل n حتى يتحقق العملاء قبل إرسال دفعة.
تشمل الحالات المرفوضة فقدان كل من n والمصافحات، والأعداد غير الصحيحة، والكسور، والترميز العلمي، والقيم الأعلى من السقف الموثّق، وأي n سالبة، ومجاميع مصافحات سالبة، ومجاميع مصافحات ليست بالضبط قيمة C(n, 2) ما. قاعدة n السالبة مقصودة: المسألة معرَّفة لعدد أشخاص غير سالب، ومعاملة السالب كخطأ من العميل يبقي الاختبارات المرجعية ثابتة والتخزين المؤقت آمنًا. إن احتجت إلى تركيبات عادية ب k حر، أو تباديل، أو تركيبات متعددة المجموعات مع التكرار، فاستخدم تلك الأدوات المخصصة؛ هذه الصفحة تجيب فقط عن عدد المصافحات وعكسه الدقيق.
أين تندرج أعداد المصافحات في الدراسة والبرمجة والنمذجة
يلتقي الطلاب بمسألة المصافحة عندما يقدّم كتاب دراسي التركيبات، أو عندما يسأل معلم كم مباراة تحتاجها بطولة الدوري الكامل، أو عندما تعرّف نظرية الرسوم البيانية للمرة الأولى الرسم البياني الكامل K_n. يمكن للمعلمين توليد مفاتيح إجابات مسبقًا لقيم n معتدلة دون الاعتماد على تطبيقات حاسبة غامضة تقرّب الأعداد الكبيرة أو تبدّل بصمت إلى الترميز العلمي. يستدعي المطوّرون العقد نفسه من النصوص البرمجية لتوليد متجهات اختبار حتمية، أو لتحديد حجم أعباء عمل المقارنة الزوجية، أو لتلبية عبارات تحديات برمجية تطلب قيمة C(n, 2) الدقيقة بدلًا من تقريب عشري.
غالبًا ما تحتاج ممارسات المسابقات إلى مصدر سريع وغير متصل لرتب المصافحات المثلثية حتى يمكن التحقق من الحلول دون تنزيل جداول OEIS تحت ضغط الوقت. يستخدم محللو المنتجات والعمليات العدد عند تقدير عدد الاجتماعات الفردية أو الأضلاع غير الموجَّهة الفريدة التي تنشأ بين n مشارك إذا تفاعل كل زوج مرة واحدة. المسار العكسي مفيد بالمثل: إعطاء مجموع اجتماعات مُبلَّغ يدّعي تغطية زوجية كاملة، يمكن استرجاع n والتحقق من أن الرقم ممكن توافقيًا قبل دخوله إلى لوحة معلومات.
اجمعها مع أدوات ذات الحدين أو تركيبات المجموعات المتعددة عندما تحتاج معاملات مرتبطة، ومع عدّادات المسارات الشبكية عندما يهم ترتيب الخطوات، ومع نقاط نهاية رياضية أخرى عندما تبني مختبرًا صغيرًا من مساعدي توافيقيات مجانيين وحتميين.
حالات الاستخدام
الواجبات وفحوصات التوافيقيات
ابحث عن مجاميع C(n, 2) الدقيقة للمصافحات واعكس مجاميع المصافحات المثلثية لتمارين الكتب الدراسية والاختبارات القصيرة.
بيانات اختبار حتمية
ولّد سلاسل عشرية لعدد المصافحات قابلة لإعادة الإنتاج لاختبارات الوحدة وفحوصات الخصائص وتأكيدات CI دون صيانة جداول يدوية.
تحديد حجم الدوري الكامل والمقارنات الزوجية
احسب الأزواج غير الموجَّهة بين n مشارك للبطولات وخطط الاجتماعات أو تقديرات أضلاع الرسم البياني الكامل.
الأسئلة الشائعة
كيف يُعرَّف عدد المصافحات؟
إذا تصافح كل زوج بين n شخصًا مرة واحدة، فالمجموع هو C(n, 2) = n(n − 1)/2.
ماذا يحدث إذا كانت n سالبة؟
تتطلب مسألة المصافحة أن تكون n ≥ 0.
لماذا النتيجة سلسلة نصية لا رقمًا؟
تنمو مجاميع المصافحات تربيعيًا ويمكن أن تتجاوز الأعداد الصحيحة الآمنة في JavaScript لقيم n كبيرة.
هل يمكن معرفة عدد الأشخاص من عدد المصافحات؟
نعم. أدخل مجموع المصافحات بدل عدد الأشخاص فتحصل على حجم المجموعة: 10 مصافحات تعني 5 أشخاص. أما المجموع الذي لا يطابق أي مجموعة بالضبط فيُرفض.
ما أكبر مجموعة يمكن حسابها؟
حتى مليون شخص. وتبقى النتيجة دقيقة حتى عند هذا الحجم، رغم أن عدد المصافحات يكبر تقريبًا بمربع حجم المجموعة.
أدوات ذات صلة
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/combo/handshake \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"n":5}'const res = await fetch("https://api.kit.forhosting.com/combo/handshake", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"n": 5
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/combo/handshake",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"n": 5
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/combo/handshake", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"n":5}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"n":5}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/combo/handshake", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"n": 5
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "combo.handshake",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الحدود
max_n | 1000000 |
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |
ملاحظات تقنية
تُرفض أعداد الأشخاص السالبة بخطأ invalid_input حتى لا تتحول خلايا جداول البيانات الخاطئة إلى إجابات خاطئة بصمت. استخدمها مجانًا في المتصفح للواجبات وتمارين البرمجة، أو استدعِ API بسعر $0.002 لكل طلب ناجح عندما تحتاج إلى بيانات مصافحة قابلة لإعادة الإنتاج في CI أو العروض التعليمية.
ماذا تحسب مسألة المصافحة وما الذي تحتويه الاستجابة
لا يوجد مسار فاصلة عائمة تقريبي يُعرض كحقيقة ولا أخذ عيّنات عشوائية للأزواج: يبني المحرك الناتج الدقيق ب BigInt داخل النطاق المدعوم أو يرفض الإدخال ب invalid_input.
كيف تُقرأ n والمصافحات وكيف يعمل الجذر المثلثي العكسي
تُقبل إشارة الجمع البادئة الاختيارية على القيم غير السالبة؛ وتُرفض المسافات المضمَّنة وبادئات hex والترميز الأسّي برسالة واضحة حتى لا تتحول خلية خاطئة إلى عدد خاطئ. صفر وواحد ل n صالحان ويعيدان صفر مصافحات، مطابقين للرسم البياني الكامل الفارغ والرسم البياني برأس واحد. إذا قُدِّم كلا الحقلين، يتحقق المحرك من الاتساق حتى يفشل زوج غير متطابق بوضوح بدلًا من اختيار جانب واحد بصمت. الحقلان المفضّلان هما n لعدد الأشخاص وhandshakes للمجموع المطلوب عكسه، لكن الأسماء البديلة people وpersons ل n وh وcount للمصافحات مقبولة أيضًا حتى تعيد جداول البيانات وسلاسل الاستعلام والنماذج المكتوبة استخدام العقد نفسه. يفرض المحرك حدًّا أقصى صارمًا قدره مليون ل n، ما يحافظ على الذاكرة وزمن الاستجابة داخل ميزانية يمكن التنبؤ بها في المسار المجاني بالمتصفح وفي Worker الحافة رغم أن الأعداد المثلثية تنمو تربيعيًا. يضرب وضع forward القيمة n في n ناقص واحد ب BigInt ويقسم على اثنين حتى لا تفقد النواتج الوسيطة أرقامًا كما تفعل أعداد IEEE المضاعفة بعد البتّ الثالث والخمسين. يحلّ وضع inverse المعادلة التربيعية n تربيع ناقص n ناقص 2h يساوي صفرًا باختبار ما إذا كان المميّز واحد زائد 8h مربعًا كاملًا عبر الجذر التربيعي الصحيح؛ فإذا كان كذلك وكانت n الناتجة عددًا صحيحًا ضمن النطاق، تُعاد تلك n، وإلا يشرح invalid_input أن مجموع المصافحات غير دقيق. كل قيمة وسيطة هي BigInt وعدد المصافحات النهائي يُسلسَل ب toString حتى لا يقتطع JSON القيم الكبيرة. اجمع بين التشغيل المجاني في المتصفح على هذه الصفحة وAPI المدفوعة عندما تحتاج إلى النتيجة الرياضية نفسها داخل خط أنابيب آلي دون إعادة تنفيذ الجذور المثلثية بنفسك.
أين تندرج أعداد المصافحات في الدراسة والبرمجة والنمذجة
يعمل هذا العمل بالكامل داخل متصفحك في هذه الصفحة؛ ومن خلال API يكلّف كل استعلام ناجح $0.002، ولا يُفرض رسم على التحقق الفاشل، ولا يُخزَّن شيء بعد إعادة الاستجابة. هذا الفصل — الاستكشاف التفاعلي المجاني وواجهة برمجية مدفوعة مطابقة — يتوافق مع بقية كتالوج KIT من الفئة tier A ويتيح لك الانتقال من عرض توضيحي صفّي إلى خط أنابيب آلي دون تغيير النتيجة الرياضية.
أسئلة تقنية
كم تكلّف حاسبة مسألة المصافحة؟
هي مجانية في متصفحك على هذه الصفحة. عبر API يكلّف الطلب الناجح $0.002؛ ولا تُفرض رسوم على المدخلات غير الصالحة.
هل يمكنني استرجاع n من مجموع مصافحات؟
نعم. أدخل handshakes (أو h / count). يجب أن يساوي المجموع قيمة C(n, 2) دقيقة؛ وإلا يفشل الطلب بخطأ invalid_input.