计算2到6个不同骰子的不同结果

问题描述 投票:0回答:1

更新的代码我知道我的程序是垃圾程序,但是我对此很陌生。很抱歉,如果您不满意。我必须计算2个骰子和6个骰子的和的相对频率。到目前为止,我认为我应该得到正确的答案,但打印的结果不正确。

我不知道问题到底在哪里...

请帮助!谢谢!

#d2_3 = 2 dices with the sum of 3


d2_2= 0
d2_3, d3_3= 0, 0
d2_4, d3_4, d4_4= 0, 0, 0
d2_5, d3_5, d4_5, d5_5= 0, 0, 0, 0
d2_6, d3_6, d4_6, d5_6, d6_6 = 0, 0, 0, 0, 0
d2_7, d3_7, d4_7, d5_7, d6_7 = 0, 0, 0, 0, 0
d2_8, d3_8, d4_8, d5_8, d6_8 = 0, 0, 0, 0, 0
d2_9, d3_9, d4_9, d5_9, d6_9 = 0, 0, 0, 0, 0
d2_10, d3_10, d4_10, d5_10, d6_10 = 0, 0, 0, 0, 0
d2_11, d3_11, d4_11, d5_11, d6_11 = 0, 0, 0, 0, 0
d2_12, d3_12, d4_12, d5_12, d6_12 = 0, 0, 0, 0, 0
d3_13, d4_13, d5_13, d6_13 = 0, 0, 0, 0
d3_14, d4_14, d5_14, d6_14 = 0, 0, 0, 0
d3_15, d4_15, d5_15, d6_15 = 0, 0, 0, 0
d3_16, d4_16, d5_16, d6_16 = 0, 0, 0, 0
d3_17, d4_17, d5_17, d6_17 = 0, 0, 0, 0
d3_18, d4_18, d5_18, d6_18 = 0, 0, 0, 0
d4_19, d5_19, d6_19 = 0, 0, 0
d4_20, d5_20, d6_20 = 0, 0, 0
d4_21, d5_21, d6_21 = 0, 0, 0
d4_22, d5_22, d6_22 = 0, 0, 0
d4_23, d5_23, d6_23 = 0, 0, 0
d4_24, d5_24, d6_24 = 0, 0, 0
d5_25, d6_25 = 0, 0
d5_26, d6_26 = 0, 0
d5_27, d6_27 = 0, 0
d5_28, d6_28 = 0, 0
d5_29, d6_29 = 0, 0
d5_30, d6_30 = 0, 0
d6_31 = 0
d6_32 = 0
d6_33 = 0
d6_34 = 0
d6_35 = 0
d6_36 = 0

for i in range(0, 100001):

    dice01 = random.randint(1, 6)
    dice02 = random.randint(1, 6)
    dice03 = random.randint(1, 6)
    dice04 = random.randint(1, 6)
    dice05 = random.randint(1, 6)
    dice06 = random.randint(1, 6)

    d2 = dice01 + dice02
    d3 = dice01 + dice02 + dice03
    d4 = dice01 + dice02 + dice03 + dice04
    d5 = dice01 + dice02 + dice03 + dice04 + dice05
    d6 = dice01 + dice02 + dice03 + dice04 + dice05 + dice06


    if [d2] == [2]:
        d2_2 = d2_2 +1
    if [d2, d3] == [3, 3]:
        d2_3, d3_3 = d2_3 +1, d3_3 +1
    if [d2, d3, d4] == [4, 4, 4]:
        d2_4, d3_4, d4_4 = d2_4 +1, d3_4 +1, d4_4 +1
    if [d2, d3, d4, d5] == [5, 5, 5, 5]:
        d2_5, d3_5, d4_5, d5_5 = d2_5 +1, d3_5 +1, d4_5 +1, d5_5 +1
    if [d2, d3, d4, d5, d6] == [6, 6, 6, 6, 6]:
        d2_6, d3_6, d4_6, d5_6, d6_6 = d2_6 +1, d3_6 +1, d4_6 +1, d5_6 +1, d6_6 +1
    if [d2, d3, d4, d5, d6] == [7, 7, 7, 7, 7]:
        d2_7, d3_7, d4_7, d5_7, d6_7 = d2_7 +1, d3_7 +1, d4_7 +1, d5_7 +1, d6_7 +1
    if [d2, d3, d4, d5, d6] == [8, 8, 8, 8, 8]:
        d2_8, d3_8, d4_8, d5_8, d6_8 = d2_8 +1, d3_8 +1, d4_8 +1, d5_8 +1, d6_8 +1
    if [d2, d3, d4, d5, d6] == [9, 9, 9, 9, 9]:
        d2_9, d3_9, d4_9, d5_9, d6_9 = d2_9 +1, d3_9 +1, d4_9 +1, d5_9 +1, d6_9 +1
    if [d2, d3, d4, d5, d6] == [10, 10, 10, 10, 10]:
        d2_10, d3_10, d4_10, d5_10, d6_10 = d2_10 +1, d3_10 +1, d4_10 +1, d5_10 +1, d6_10 +1
    if [d2, d3, d4, d5, d6] == [11, 11, 11, 11, 11]:
        d2_11, d3_11, d4_11, d5_11, d6_11 = d2_11 +1, d3_11 +1, d4_11 +1, d5_11 +1, d6_11 +1
    if [d2, d3, d4, d5, d6] == [12, 12, 12, 12, 12]:
        d2_12, d3_12, d4_12, d5_12, d6_12 = d2_12 +1, d3_12 +1, d4_12 +1, d5_12 +1, d6_12 +1
    if [d3, d4, d5, d6] == [13, 13, 13, 13]:
        d3_13, d4_13, d5_13, d6_13 = d3_13 +1, d4_13 +1, d5_13 +1, d6_13 +1
    if [d3, d4, d5, d6] == [14, 14, 14, 14]:
        d3_14, d4_14, d5_14, d6_14 = d3_14 +1, d4_14 +1, d5_14 +1, d6_14 +1
    if [d3, d4, d5, d6] == [15, 15, 15, 15]:
        d3_15, d4_15, d5_15, d6_15 = d3_15 +1, d4_15 +1, d5_15 +1, d6_15 +1
    if [d3, d4, d5, d6] == [16, 16, 16, 16]:
        d3_16, d4_16, d5_16, d6_16 = d3_16 +1, d4_16 +1, d5_16 +1, d6_16 +1
    if [d3, d4, d5, d6] == [17, 17, 17, 17]:
        d3_17, d4_17, d5_17, d6_17 = d3_17 +1, d4_17 +1, d5_17 +1, d6_17 +1
    if [d3, d4, d5, d6] == [18, 18, 18, 18]:
        d3_18, d4_18, d5_18, d6_18 = d3_18 +1, d4_18 +1, d5_18 +1, d6_18 +1
    if [d4, d5, d6] == [19, 19, 19]:
        d4_19, d5_19, d6_19 = d4_19 +1, d5_19 +1, d6_19 +1
    if [d4, d5, d6] == [20, 20, 20]:
        d4_20, d5_20, d6_20 = d4_20 +1, d5_20 +1, d6_20 +1
    if [d4, d5, d6] == [21, 21, 21]:
        d4_21, d5_21, d6_21 = d4_21 +1, d5_21 +1, d6_21 +1
    if [d4, d5, d6] == [22, 22, 22]:
        d4_22, d5_22, d6_22 = d4_22 +1, d5_22 +1, d6_22 +1
    if [d4, d5, d6] == [23, 23, 23]:
        d4_23, d5_23, d6_23 = d4_23 +1, d5_23 +1, d6_23 +1
    if [d4, d5, d6] == [24, 24, 24]:
        d4_24, d5_24, d6_24 = d4_24 +1, d5_24 +1, d6_24 +1
    if [d5, d6] == [25, 25]:
        d5_25, d6_25 = d5_25 +1, d6_25 +1
    if [d5, d6] == [26, 26]:
        d5_26, d6_26 = d5_26 +1, d6_26 +1
    if [d5, d6] == [27, 27]:
        d5_27, d6_27 = d5_27 +1, d6_27 +1
    if [d5, d6] == [28, 28]:
        d5_28, d6_28 = d5_28 +1, d6_28 +1
    if [d5, d6] == [29, 29]:
        d5_29, d6_29 = d5_29 +1, d6_29 +1
    if [d5, d6] == [30, 30]:
        d5_30, d6_30 = d5_30 +1, d6_30 +1
    if [d6] == [31]:
        d6_31 = d6_31 +1
    if [d6] == [32]:
        d6_32 = d6_32 +1
    if [d6] == [33]:
        d6_33 = d6_33 +1
    if [d6] == [34]:
        d6_34 = d6_34 +1
    if [d6] == [35]:
        d6_35 = d6_35 +1
    if [d6] == [36]:
        d6_36 = d6_36 +1

print("summa_utfall for 2 tärningar:", "2:",d2_2, " 3:",d2_3," 4:", d2_4," 5:", d2_5," 6:", d2_6," 7:", d2_7," 8:", d2_8," 9:", d2_9," 10:", d2_10," 11:", d2_11," 12:", d2_12)
print("summa_utfall for 3 tärningar:", "3:",d3_3, " 4:",d3_4, " 5:",d3_5, " 6:",d3_6, " 7:",d3_7, " 8:",d3_8, " 9:",d3_9, " 10:",d3_10, " 11:",d3_11, " 12:",d3_12, " 13:",d3_13, " 14:",d3_14, " 15:",d3_15, " 16:",d3_16, " 17:",d3_17, " 18:",d3_18)
print("summa_utfall for 4 tärningar:", "4:",d4_4, " 5:", d4_5," 6:", d4_6," 7:", d4_7," 8:", d4_8," 9:", d4_9," 10:", d4_10," 11:", d4_11," 12:", d4_12," 13:", d4_13," 14:", d4_14," 15:", d4_15," 16:", d4_16," 17:", d4_17," 18:", d4_18," 19:", d4_19," 20:", d4_20," 21:", d4_21," 22:", d4_22," 23:", d4_23," 24:", d4_24)
print("summa_utfall for 5 tärningar:", "5:",d5_5, " 6:",d5_6, " 7:",d5_7, " 8:",d5_8, " 9:",d5_9, " 10:",d5_10, " 11:",d5_11, " 12:",d5_12, " 13:",d5_13, " 14:",d5_14, " 15:",d5_15, " 16:",d5_16, " 17:",d5_17, " 18:",d5_18, " 19:",d5_19, " 20:",d5_20, " 21:",d5_21, " 22:",d5_22, " 23:",d5_23, " 24:",d5_24, " 25:",d5_25, " 26:",d5_26, " 27:",d5_27, " 28:",d5_28, " 29:",d5_29, " 30:",d5_30)
print("summa_utfall for 6 tärningar:", "6.",d6_6, " 7:",d6_7, " 8:",d6_8, " 9:",d6_9, " 10:",d6_10, " 11:",d6_11, " 12:",d6_12, " 13:",d6_13, " 14:",d6_14, " 15:",d6_15, " 16:",d6_16, " 17:",d6_17, " 18:",d6_18, " 19:",d6_19, " 20:",d6_20, " 21:",d6_21, " 22:",d6_22, " 23:",d6_23, " 24:",d6_24, " 25:",d6_25, " 26:",d6_26, " 27:",d6_27, " 28:",d6_28, " 29:",d6_29, " 30:",d6_30, " 31:",d6_31, " 32:",d6_32, " 33:",d6_33, " 34:",d6_34, " 35:",d6_35, " 36:",d6_36)


python probability dice die
1个回答
0
投票

这里是您如何处理2个骰子的方法:

>>> from itertools import permutations
>>> list(permutations( range(6), 2))
[(0, 1), (0, 2), (0, 3), (0, 4), (0, 5), (1, 0), (1, 2), (1, 3), (1, 4), (1, 5), (2, 0), (2, 1), (2, 3), (2, 4), (2, 5), (3, 0), (3, 1), (3, 2), (3, 4), (3, 5), (4, 0), (4, 1), (4, 2), (4, 3), (4, 5), (5, 0), (5, 1), (5, 2), (5, 3), (5, 4)]

第一个和第二个模具的值之和:

>>> outcomes = list(permutations( range(6), 2))
>>> sums = [a+b for a,b in outcomes]
>>> sums
[1, 2, 3, 4, 5, 1, 3, 4, 5, 6, 2, 3, 5, 6, 7, 3, 4, 5, 7, 8, 4, 5, 6, 7, 9, 5, 6, 7, 8, 9]

现在我们可以计算出每个结果发生了多少次:

>>> from collections import Counter
>>> Counter(sums)
Counter({5: 6, 3: 4, 4: 4, 6: 4, 7: 4, 1: 2, 2: 2, 8: 2, 9: 2})
© www.soinside.com 2019 - 2024. All rights reserved.