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

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

  •  16-09-2019
  •  | 
  •  

سؤال

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

# rollFive.py

from random import *

def main():
    n = input("Please enter the number of sims to run: ")
    hits = simNRolls(n)
    hits = float(hits)
    n = float(n)
    prob = hits/n
    print "The odds of rolling 5 of the same number are", prob

def simNRolls(n):
    hits = 0
    for i in range(n):
        hits = hits + diceRoll()
    return hits


def diceRoll():
    firstDie = randrange(1,7,1)
    for i in range(4):
        nextDie = randrange(1,7,1)
        if nextDie!=firstDie:
            success = 0
            break
        else:
            success = 1
    return success

المشكلة هي أن تشغيل هذا البرنامج بقيمة نكون من 1 000 000 يمنحني احتمالا عادة بين 0.0006 و 0.0008 بينما يجعلني الرياضيات أعتقد أنني يجب أن أحصل على إجابة أقرب إلى 0.0001286 (ويعرف أيضا باسم (1/6) ^ 5) وبعد

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

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

المحلول

احتمالية الحصول على رقم معين خمس مرات هو (1/6) ^ 5، ولكن احتمال الحصول على أي أرقام خمسة هو نفسه (1/6) ^ 4.

هناك طريقتان لرؤيتها.

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

نظرت إلى طريقة أخرى، لا يهم ما يعطيه أول لفة، لذلك نحن نستبعدها. ثم علينا أن نتطابق مع هذا الرقم مع القوائم الأربعة المتبقية، واحتمال ذلك (1/6) ^ 4.

نصائح أخرى

الرياضيات الخاصة بك خطأ. احتمال الحصول على خمسة النرد بنفس العدد 6*(1/6)^5 = 0.0007716.

ببساطة ببساطة، هناك 6 ** 5 النتائج الممكنة من المتداول 5 النرد، و 6 فقط من تلك النتائج ناجحة، وبالتالي فإن الجواب هو 6.0 / 6 ** 5

أعتقد أن احتمالك المتوقع خطأ، كما ذكرت المشكلة. (1/6) ^ 5 هو احتمالية المتداول بعض محدد رقم 5 مرات على التوالي؛ (1/6) ^ 4 هو احتمال المتداول أي رقم 5 مرات على التوالي (لأن لفة الأولى هي دائما "ناجحة" - أي أن لفة الأولى ستؤدي دائما إلى عدد قليل).

>>> (1.0/6.0)**4
0.00077160493827160479

مقارنة بتشغيل البرنامج الخاص بك مع 1 مليون تكرارات:

[me@host:~] python roll5.py 
Please enter the number of sims to run: 1000000
The odds of rolling 5 of the same number are 0.000755
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top