ForHosting KIT · الرياضيات

حاسبة مفارقة أعياد الميلاد

في مجموعة من 23 شخصًا فقط، يبلغ احتمال أن يتشارك اثنان يوم الميلاد نحو 50 % رغم أن السنة 365 يومًا. أدخل حجم المجموعة وعدد الأيام لتحصل على الاحتمال الدقيق لوجود يوم مشترك. مجانًا في متصفحك.

  • مجاني
  • يعمل في متصفحك
  • دون تسجيل
  • بياناتك لا تغادر جهازك
استخدمها من الويبAPIالبريدTelegramالتطبيق قريبًا
إذا أدخلت
N
23
عدد الأيام الممكنة
365
تحصل على
الاحتمال
0.5072972343
الكل مختلف
0.4927027657

مفارقة أعياد الميلاد هي الحقيقة المدهشة المتمثلة في أن احتمال تشارك شخصين على الأقل في عيد الميلاد نفسه، ضمن مجموعة لا تتجاوز ثلاثة وعشرين شخصًا، يبلغ نحو خمسين في المئة بالفعل، رغم أن السنة تضم ثلاثمئة وخمسة وستين يومًا. وتنطبق الرياضيات نفسها على أي مسألة تصادم: حاويات التجزئة، ومواعيد الاجتماعات، والرموز العشوائية، والتقاويم المخصصة ذات التسميات الممكنة التي يبلغ عددها d. تأخذ هذه الحاسبة حجم المجموعة n وعدد الأيام d، فتضرب الناتج التكاملي لكون جميع أعياد الميلاد مختلفة، ثم تعيد واحدًا ناقص تلك القيمة في صورة احتمال عشري مستقر. وتُرفض قيم n أو d الأدنى من واحد برسالة خطأ تحقق واضحة، بحيث لا تُنتج المدخلات الناقصة أو العبثية يقينًا زائفًا صامتًا أبدًا. والنتائج حساب حتمي بالكامل دون أخذ عينات ودون نموذج لغوي.

ما الذي تقيسه مفارقة أعياد الميلاد ولماذا تدهش الناس

يقدّر معظم الناس خطر تشارك أعياد الميلاد بمقارنة حجم المجموعة بطول السنة. وهذا الحدس يبحث عن تطابق مع شخص ثابت واحد، لذا يقلّل كثيرًا من شأن التصادمات. أما السؤال الصحيح فهو ما إذا كان أي زوج في المجموعة يتصادم.

فمع n شخصًا توجد أزواج عددها توافيق n اثنين اثنين، ولكل زوج احتمال صغير للتطابق في أحد الأيام d. وهذه الأحداث الزوجية ليست مستقلة، لذلك تعمل الصيغة المغلقة الأنيقة مع المتممة: نبدأ من احتمال وقوع كل شخص في يوم لم يُستخدم بعد، ثم نطرح من الواحد. وصياغةً رسميةً، ثبّت ترتيبًا اعتباطيًا للمجموعة.

يجوز للشخص الأول أي يوم. ويجب على الثاني تجنّب يوم الأول، وينجح ذلك باحتمال (d ناقص واحد) على d. ويجب على الثالث تجنّب اليومين السابقين عندما يكونان مختلفين، وهكذا.

وبضرب تلك الحدود المتعاقبة نحصل على P(الكل مختلف). وواحد ناقص ذلك الناتج هو P(يوم مشترك واحد على الأقل). وفي التقويم المعتاد حيث d تساوي ثلاثمئة وخمسة وستين وn تساوي ثلاثة وعشرين، يهبط الناتج إلى ما دون النصف قليلًا، فيتجاوز احتمال اليوم المشترك خمسين في المئة.

وعند n تساوي سبعة وخمسين تتجاوز القيمة تسعة وتسعين في المئة بالفعل. وتصلح الصيغة نفسها لنماذج السنوات الكبيسة ذات الأيام الثلاثمئة والستة والستين، ولأسابيع العمل القصيرة ذات المواعيد السبعة، ولفضاءات التسميات الاصطناعية مثل بادئات رموز PIN الرباعية. ويكفي فهم الناتج التكاملي لإزالة غموض المفارقة دون ضجيج Monte Carlo ودون جداول لتوافيق الأزواج.

الحدس حول تصادمات التجزئة والمعرفات

يوضح المهندسون حدود أعياد الميلاد التقريبية للرموز القصيرة أو مفاتيح التخزين المؤقت أو تسميات الحاويات، وذلك بضبط d على حجم فضاء التسميات ومسح n حتى يصبح احتمال التشارك غير مقبول.

أواكل حتمية للاختبارات والأدوات

تستدعي منصات المقابلات وتطبيقات الاختبارات القصيرة ومجموعات CI أوراكل مستقرًا يرفض n أو d الأدنى من واحد ويعيد حقول احتمال متطابقة للمدخلات المتطابقة.

ماذا يحدث إذا كانت n أو d أدنى من 1؟

يلزم وجود شخص واحد على الأقل وتسمية يوم واحدة على الأقل؛ وتُرفض القيم الصفرية والسالبة ولا تُحتسب رسومًا.

لماذا يبلغ الاحتمال نحو 50% بالفعل عند 23 شخصًا؟

تضرب الحاسبة احتمال تجنّب كل شخص جديد جميع أعياد الميلاد السابقة بين 365 يومًا.

هل تستخدم محاكاة أو أخذ عينات عشوائية؟

لا. إنها تحسب الناتج التكاملي المغلق بحساب عشري عائم حتمي (في الفضاء اللوغاريتمي من أجل الاستقرار). وتعيد القيمتان n وd نفساهما الاحتمال نفسه دائمًا دون ضجيج Monte Carlo.

كم شخصًا نحتاج ليصبح التطابق شبه مؤكد؟

مع 365 يومًا يتجاوز الاحتمال تسعة وتسعين في المئة عند سبعة وخمسين شخصًا. وإذا زاد عدد الأفراد على عدد الأيام صار وجود يوم مشترك مضمونًا، ويكون الاحتمال واحدًا تمامًا.

هل يمكن استخدام عدد أيام غير 365؟

نعم. يمكن أن يكون عدد الأيام أي عدد صحيح من 1 إلى 1000000، فتصلح الصيغة نفسها لسنة كبيسة أو لأيام الأسبوع السبعة أو لمواعيد الاجتماعات أو للرموز العشوائية التي تريد معرفة احتمال تكرارها.

كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.

POSThttps://api.kit.forhosting.com/prob/birthday-paradox

صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.

curl -X POST https://api.kit.forhosting.com/prob/birthday-paradox \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"n":23,"d":365}'
{
  "n": 23,
  "d": 365
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "prob.birthday_paradox",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.

لكل طلب$0.002

السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.

max_n100000
max_d1000000
HTTPالرمزالمعنى
401unauthorizedمفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك.
402insufficient_balanceرصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة.
404unknown_typeنوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب.
429rate_limitedتجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة.

كيف تتحقق هذه الحاسبة من المدخلات وتحسب الناتج

استدعِ القدرة بعددين صحيحين إلزاميين: n وهو عدد الأشخاص، وd وهو عدد الأيام الممكنة أو التسميات المختلفة. يتحقق المحرك من أن القيمتين عددان صحيحان منتهيان ضمن الحدود المنشورة: n من واحد إلى مئة ألف، وd من واحد إلى مليون. ويُبقي الضرب في الفضاء اللوغاريتمي النواتج الوسيطة بعيدة عن التدفق السفلي المبكر عندما تكبر المجموعات، مع بقائه حسابًا عشريًا مزدوجًا حتميًا خالصًا. وتُقبل الأسماء البديلة people أو group_size بدلًا من n، وdays أو labels بدلًا من d. أما الحقول المفقودة والقيم غير الصحيحة وn الأدنى من واحد وd الأدنى من واحد والقيم المتجاوزة للحدود القصوى فتفشل جميعها مع invalid_input ولا تُحتسب رسومًا. وبعد التحقق، إذا كان n أكبر من d انطبق مبدأ برج الحمام فورًا: لا بد أن يتشارك شخصان على الأقل يومًا واحدًا، فيكون probability مساويًا لواحد، وall_distinct مساويًا لصفر، وguaranteed مساويًا لـ true. وإلا جمع المحرك لوغاريتم كل عامل (d ناقص i) على d من أجل i من واحد إلى n ناقص واحد، ثم رفع المجموع أسيًا، وقصّ الناتج العشري العائم إلى الفترة الواحدية، وأعاد probability مساويًا لواحد ناقص قيمة all_distinct تلك. وحقول الاستجابة هي n وd وprobability وall_distinct وguaranteed.

الاستخدام العملي والحدود والتسعير وقنوات التسليم

استخدم أداة المتصفح عندما تريد احتمال تصادم فوريًا أثناء تدريس الاحتمالات المتقطعة، أو تصميم لعبة مطابقة، أو التحقق من سبب كون ثلاثة وعشرين العتبة الشهيرة في الفصول الدراسية مقابل ثلاثمئة وخمسة وستين يومًا. والنتائج حتمية تمامًا: فالقيمتان n وd نفساهما تعطيان دائمًا الاحتمال نفسه والمتممة نفسها وعلامة guaranteed نفسها. ولا يوجد نموذج لغوي ولا خدمة احتمالات خارجية ولا عشوائية، لذا يمكن تثبيت القدرة بأمان في فحوصات التكامل المستمر والمواد التعليمية القابلة للتكرار. واستخدم API عندما يحتاج نص برمجي أو منصة تعليمية أو بيئة اختبار مقابلات أو عرض توضيحي لتصادمات التجزئة أو مخطط سعات إلى JSON مستقر لأزواج كثيرة من (n, d) بموجب عقد واحد. كل طلب ناجح هو بند قابل للفوترة بسعر $0.002، والتحقق الفاشل لا يستهلك الرصيد. وتحافظ النطاقات المقبولة على بقاء ناتج O(n) ضمن حدود معزولات Worker، مع تغطية تقاويم الفصول الدراسية وفضاءات التسميات متعددة السنوات وحاويات اصطناعية أكبر بكثير من سنة واحدة. وصِل نقطة النهاية بدروس الاحتمالات، أو بأواكل مقابلات البرمجة، أو بمقدّرات تصادم الجدولة، أو بعروض التشفير التعليمية حيث تفضّل الناتج التكاملي الكلاسيكي على مدرجات أخذ العينات التقريبية التي لا تستقر أبدًا عند القيمة الحقيقية تمامًا.

التحقق في الفصول الدراسية والكتب المدرسية

يتحقق المعلمون والطلاب من العتبة الكلاسيكية n=23، d=365، ويستكشفون كيف يؤدي تغيير طول التقويم إلى إزاحة نقطة تجاوز الخمسين في المئة دون حساب نواتج طويلة يدويًا.

كيف أحسب احتمال مفارقة أعياد الميلاد؟

أرسل JSON يتضمن العددين الصحيحين n (الأشخاص) وd (الأيام الممكنة) إلى prob.birthday_paradox. تتضمن الاستجابة احتمال يوم مشترك واحد على الأقل، والمتممة all_distinct، وعلامة guaranteed عندما يتجاوز n قيمة d.

هل حاسبة مفارقة أعياد الميلاد مجانية؟

تعمل أداة المتصفح مجانًا على جهازك. وتستخدم استدعاءات API رصيد KIT المدفوع مسبقًا بسعر $0.002 لكل بند ناجح؛ أما إخفاقات التحقق فلا تُحتسب رسومًا.

اطّلع على توثيق KIT الكامل ←