Python中的概率模拟

时间:2012-07-06 04:53:11

标签: python testing simulation probability

我遇到了概率问题,我写了一个脚本来测试它。

投掷两个无偏骰子,观察总分。找到可能性:  a)总分为偶数或大于7

我在Python中编写了以下脚本,它应该给我“A”正确的概率。

import random

def thing(trials):

    i = 0
    number = 0

    while i < trials:

        answer1 = random.choice([1, 2, 3, 4, 5, 6])
        answer2 = random.choice([1, 2, 3, 4, 5, 6])


        if (answer1 + answer2)%2 == 0:
            number += 1.0
        elif (answer1 + answer2) > 7:
            number += 1.0

        i += 1

    print number/i

这给了我2/3作为答案, 正确。谢谢!

2 个答案:

答案 0 :(得分:1)

理论上的答案是:

   1  2  3  4  5  6
   ________________
1 |2  3  4  5  6  7
2 |3  4  5  6  7  8
3 |4  5  6  7  8  9
4 |5  6  7  8  9 10
5 |6  7  8  9 10 11
6 |7  8  9 10 11 12

Total favorable outputs: [(1,1),(3,1),(1,3), (1,5) .....(7,1)..(6,6)] : total 24
All possible outputs: 36

Theoretical probability: 2/3

我尝试使用thing(1000000),输出为0.667812,足够接近......:)

答案 1 :(得分:1)

根据我的计算10/12是正确的。 @Thrustmaster列出了可能性,但没有发生的可能性。考虑到发生概率,在36个可能的卷中有30个理想的结果,即5/6(或10/12)。

编辑:我看到您更新了问题以更改问题。在这种情况下,是的,2/3是正确的。