掷骰子直方图没有给出预期的输出?
Rolling Dice Histogram Not Giving The Supposed Output?
所以这是我的代码:
您可以在下面看到代码:
import random
from collections import defaultdict
def main():
dice = 11
sides = 6
rolls = 1000
result = roll(dice, sides, rolls)
maxH = 0
for i in range(dice, dice * sides + 1):
if result[i] / rolls > maxH: maxH = result[i] / rolls
for i in range(dice, dice * sides + 1):
print('{:2d}{:10d} {}'.format(i, result[i], '*' * int(result[i] / rolls / maxH * 40)))
def roll(dice, sides, rolls):
d = defaultdict(int)
for _ in range(rolls):
d[sum(random.randint(1, sides) for _ in range(dice))] += 1
return d
main()
我想要的输出是:
11:
12:
13:
14:
15:
16:
17:
18: *
19: ****
20:
21: ***
22: ******
23: ********
24: ****************
25: *************
26: **********
27: *********************************
28: ****************************************
29: *********************************
30: ***************************************************
31: *****************************************************************
32: ********************************************************
33: **************************************************************************************
34: ***********************************************************
35: *********************************************************************
36: ***********************************************************************************
37: **************************************************************
38: *****************************************************************
39: ***************************************
40: *****************************************************
41: ************************************
42: ****************************
43: ************************
44: ************************
45: *********
46: ***********
47: *******
48: ***
49: **
50:
51:
52: *
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
但出于某种原因,它没有给我确切的 output.What 问题,找不到解决方案?
(注意:这段代码的问题是这样的:“编写一个程序,它接受一个整数参数 n,并掷 11 个公平的六面骰子,n 次。使用一个整数
数组以列出每个可能的总数(11 到 66 之间)出现的次数。然后打印一段文字
结果的直方图,如下图所示。 (你可以取 n 为 1000)。")
print('{:2d}: {}'.format(i, '*' * int(result[i] / rolls / maxH * 80)))
maxH = max(result.values())
然后
print('{:2d}: {}'.format(i, '*' * int(result[i] / maxH * 100)))
所以这是我的代码: 您可以在下面看到代码:
import random
from collections import defaultdict
def main():
dice = 11
sides = 6
rolls = 1000
result = roll(dice, sides, rolls)
maxH = 0
for i in range(dice, dice * sides + 1):
if result[i] / rolls > maxH: maxH = result[i] / rolls
for i in range(dice, dice * sides + 1):
print('{:2d}{:10d} {}'.format(i, result[i], '*' * int(result[i] / rolls / maxH * 40)))
def roll(dice, sides, rolls):
d = defaultdict(int)
for _ in range(rolls):
d[sum(random.randint(1, sides) for _ in range(dice))] += 1
return d
main()
我想要的输出是:
11:
12:
13:
14:
15:
16:
17:
18: *
19: ****
20:
21: ***
22: ******
23: ********
24: ****************
25: *************
26: **********
27: *********************************
28: ****************************************
29: *********************************
30: ***************************************************
31: *****************************************************************
32: ********************************************************
33: **************************************************************************************
34: ***********************************************************
35: *********************************************************************
36: ***********************************************************************************
37: **************************************************************
38: *****************************************************************
39: ***************************************
40: *****************************************************
41: ************************************
42: ****************************
43: ************************
44: ************************
45: *********
46: ***********
47: *******
48: ***
49: **
50:
51:
52: *
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
但出于某种原因,它没有给我确切的 output.What 问题,找不到解决方案? (注意:这段代码的问题是这样的:“编写一个程序,它接受一个整数参数 n,并掷 11 个公平的六面骰子,n 次。使用一个整数 数组以列出每个可能的总数(11 到 66 之间)出现的次数。然后打印一段文字 结果的直方图,如下图所示。 (你可以取 n 为 1000)。")
print('{:2d}: {}'.format(i, '*' * int(result[i] / rolls / maxH * 80)))
maxH = max(result.values())
然后
print('{:2d}: {}'.format(i, '*' * int(result[i] / maxH * 100)))