gpt4 book ai didi

python - 掷骰子直方图没有给出预期的输出?

转载 作者:行者123 更新时间:2023-12-01 06:43:43 25 4
gpt4 key购买 nike

这是我的代码:您可以在下面看到代码:

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:

但由于某种原因,它没有给我这个准确的输出。问题是什么,找不到解决方案吗?(注:这段代码的问题是:“编写一个程序,接受整数参数 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)))

关于python - 掷骰子直方图没有给出预期的输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59337582/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com