Combinatorics عد اللغز:لفة 20, 8-جانب الزهر, ما هو احتمال الحصول على ما لا يقل عن 5 النرد من نفس القيمة

StackOverflow https://stackoverflow.com/questions/1202343

سؤال

نفترض في المباراة التي فات 20, 8-جانب يموت إجمالي عدد 8^20 من النتائج المحتملة.لحساب احتمال حدث معين يحدث ، نقسم عدد من الطرق التي الحدث يمكن أن تحدث بنسبة 8^20.

يمكن للمرء أن يحسب عدد من الطرق للحصول على بالضبط 5 النرد من قيمة 3.(20 اختيار 5) يعطينا عدد أوامر من 3.7^15 يعطينا عدد من الطرق التي يمكن الحصول على قيمة 3 لمدة 15 لفات.

number of ways to get exactly 5, 3's = (20 choose 5)*7^15.

الجواب يمكن أيضا أن ينظر إلى كيفية العديد من الطرق التي يمكنني إعادة ترتيب سلسلة 3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 (20 اختيار 5) مرات مجموع القيم نحن صفر (على افتراض 7 القانوني القيم) 7^15 (هل هذا صحيح).

  • السؤال 1:كيف يمكن حساب عدد من الطرق للحصول على بالضبط 5 النرد من نفس القيمة(التي هي لجميع يموت القيم).ملاحظة:إذا أنا فقط بسذاجة استخدام أول الجواب أعلاه وتتكاثر bt 8, أحصل على كمية هائلة من العد المزدوج ؟

    أنا أفهم أن أتمكن من حل لكل الحالات (5 1), (5, 2), (5, 3), ...(5 ، 8) مبلغ لهم (ببساطة أكثر 8*(5 1) ).ثم طرح مجموع عدد التداخل (5 1) و (5 2), (5 1) و (5 من 3)...(5 1) و (5, 2) و ...و (5, 8) ولكن هذا يبدو فوضوي للغاية.أود أن التعميم من هذا في الطريقة التي جداول تصل إلى أعداد كبيرة من العينات أعداد كبيرة من الطبقات.

  • كيف يمكن حساب عدد من الطرق للحصول على على الأقل 5 النرد من نفس القيمة ؟

    حتى 111110000000000000000 أو 11110100000000000002 أو 11111100000001110000 أو 11011211222222223333 ، ولكن ليس 00001111222233334444 أو 000511512252363347744.

أنا أبحث عن الإجابات التي إما شرح الرياضيات أو أشر إلى المكتبة التي تدعم هذا (esp وحدات بيثون).نقاط اضافية لمزيد من التفاصيل والأمثلة على ذلك.

هل كانت مفيدة؟

المحلول

يمكن حل العد المزدوج باستخدام مبدأ الشمول / الاستبعاد

أظن أنه يخرج إلى:

Choose(8,1)*P(one set of 5 Xs) 
- Choose(8,2)*P(a set of 5 Xs and a set of 5 Ys) 
+ Choose(8,3)*P(5 Xs, 5 Ys, 5 Zs) 
- Choose(8,4)*P(5 Xs, 5 Ys, 5 Zs, 5 As)

P(set of 5 Xs) = 20 Choose 5 * 7^15 / 8^20
P(5 Xs, 5 Ys) = 20 Choose 5,5 * 6^10 / 8^20

وما إلى ذلك وهلم جرا.هذا لا يحل مشكلة "أكثر من 5 من نفس الشيء" مباشرة، كما لو قمت ببساطة بجمع نتائج هذا المطبق على 5,6,7..20؛سوف تقوم بإحصاء الحالات التي يكون لديك فيها، على سبيل المثال، 10 1 و5 8.

ربما يمكنك تطبيق استبعاد التضمين مرة أخرى للتوصل إلى تلك الإجابة الثانية؛لذلك، P(من 5 على الأقل)=P(مجموعة واحدة من 20)+ ...+ (P(مجموعة واحدة من 15) - 7*P(مجموعة واحدة من 5 من 5 نرد)) + ((P(مجموعة واحدة من 14) - 7*P(مجموعة واحدة من 5 من 6) - 7*P(واحد مجموعة من 6 من 6)).إن التوصل إلى الكود المصدري لذلك أمر أكثر صعوبة.

نصائح أخرى

أقترح عليك قضاء بعض الوقت في كتابة محاكاة مونت كارلو والسماح لها بالعمل أثناء إجراء العمليات الحسابية يدويًا.نأمل أن تتقارب محاكاة مونت كارلو قبل الانتهاء من العمليات الحسابية وستتمكن من التحقق من الحل.

قد يتضمن الخيار الأسرع قليلاً إنشاء نسخة SO لأسئلة الرياضيات.

يمكن حساب التوزيع الاحتمالي الدقيق Fs,i لمجموع قطع النرد على الوجهين على أنه الالتواء المتكرر لتوزيع احتمالية القالب الفردي مع نفسه.

alt text

أين alt text للجميع alt text و0 غير ذلك.

http://en.wikipedia.org/wiki/Dice

هذه المشكلة من الصعب حقا إذا كان لديك تعميم ذلك (الحصول على الصيغة الدقيقة).

ولكن على أي حال, اسمحوا لي أن أشرح الخوارزمية.إذا كنت تريد أن تعرف

عدد من الطرق للحصول على بالضبط 5 الزهر من نفس القيمة

لديك إلى إعادة صياغة السابقة المشكلة ،

حساب عدد من الطرق للحصول على بالضبط 5 النرد من قيمة 3 و لا قيمة أخرى يمكن أن تتكرر بالضبط 5 مرات

من أجل التبسيط ، دعونا ندعو الدالة F(20,8,5) (5 النرد, جميع القيم) الجواب الأول ، و(20,8,5,3) (5 النرد ، قيمة 3) الثاني.لدينا F(20,8,5) = F(20,8,5,3) * 8 + (الأحداث عند أكثر من قيمة واحدة تتكرر 5 مرات)

حتى إذا كنا نستطيع الحصول على F(20,8,5,3) يجب أن تكون بسيطة جدا أليس كذلك ؟ حسنا ليس كثيرا...

أولا دعونا نحدد بعض المتغيرات:X1,X2,X3...شي فيها شي=عدد مرات نحصل على الزهر أنا

ثم:

F(20,8,5)/20^8 = P(X1=5 or X2=5 or ... or X8=5, with R=20(rolls) and N=8(dice number))

, P(البيان) كونها الطريقة القياسية لكتابة احتمال.

نواصل:

F(20,8,5,3)/20^8 = P(X3=5 and X1<>5 and ... and X8<>5, R=20, N=8) 
F(20,8,5,3)/20^8 = 1 - P(X1=5 or X2=5 or X4=5 or X5=5 or X6=5 or X7=5 or X8=5, R=15, N=7)  
F(20,8,5,3)/20^8 = 1 - F(15,7,5)/7^15

بشكل متكرر:

F(15,8,5) = F(15,7,5,1) * 7  
P(X1=5 or X2=5 or X4=5 or X5=5 or X6=5 or X7=5 or X8=5, R=15, N=7) = P(X1=5 and X2<>5 and X4<>5 and .. and X8<>5. R=15, N=7) * 7

F(15,7,5,1)/7^15 = 1 - F(10,6,5)/6^10 F(10,6,5) = F(10,6,5,2) * 6

F(10,6,5,2)/6^10 = 1 - F(5,5,5)/5^5
F(5,5,5) = F(5,5,5,4) * 5

حسنا إذا .. و(5,5,5,4) هو عدد من الطرق للحصول على 5 قطع من قيمة 4 في 5 لفات ، مثل لا أخرى الزهر يكرر 5 مرات.هناك فقط 1 الطريقة من مجموع 5^5.واحتمال ثم 1/5^5.

و(5,5,5) هو عدد من الطرق للحصول على 5 قطع من أي قيمة (من 5 القيم) في 5 لفات.من الواضح انها 5.واحتمال ثم 5/5^5 = 1/5^4.

و(10,6,5,2) هو عدد من الطرق للحصول على 5 قطع من قيمة 2 في 10 لفات ، مثل لا أخرى الزهر يكرر 5 مرات.و(10,6,5,2) = (1-F(5,5,5)/5^5) * 6^10 = (1-1/5^4) * 6^10

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

تحرير: فعلت بعض الشيكات ، وأدركت لديك لإضافة بعض الحالات عندما تحصل على أكثر من قيمة واحدة تتكرر بالضبط 5 مرات.لم يكن لديك الوقت لحل هذا الجزء انت...

وهنا ما أفكر فيه...

إذا كان لديك 5 أحجار نرد فقط، فسيكون لديك ثماني طرق فقط للحصول على ما تريد.

لكل واحدة من هذه الطرق الثمانية، جميع المجموعات الممكنة من النرد الخمسة عشر الأخرى تعمل.

إذن - أعتقد أن الجواب هو:(8*815) / 820

(الإجابة لما لا يقل عن 5 نفس.)

أعتقد أنه يمكنك استخدام صيغة تكرارات x في أحداث n على النحو التالي:

P = الاحتمال ^ ن * (ن!/((ن - س)!x!))

وبالتالي فإن النتيجة النهائية ستكون مجموع النتائج من 0 إلى n.

لا أرى حقًا أي طريقة سهلة لدمجها في خطوة واحدة تكون أقل فوضى.بهذه الطريقة تكون لديك الصيغة الموضحة في الكود أيضًا.قد تضطر إلى كتابة الطريقة العاملية الخاصة بك بالرغم من ذلك.

  float calculateProbability(int tosses, int atLeastNumber) {
    float atLeastProbability = 0;
    float eventProbability = Math.pow( 1.0/8.0, tosses);
    int nFactorial = factorial(tosses);

    for ( i = 1; i <= atLeastNumber; i++) {
      atLeastProbability += eventProbability * (nFactorial / (factorial(tosses - i) * factorial(i) );
    }
  }

الحل العودي:

Prob_same_value(n) = Prob_same_value(n-1) * (1 - Prob_noone_rolling_that_value(N-(n-1)))
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top