随机模块中的
randint
函数可以用来产生随机数。例如,对random.randint(1, 6)
的调用将以相同的概率产生1到6的值。编写一个循环1000次的程序。在每次迭代中,它对randint
进行两次调用,以模拟滚动一对骰子。计算两个骰子的和,并记录每个值出现的次数。 输出应该是两列。一个显示所有和(即从2到12),另一个以1000次显示和各自的频率。
我的代码如下所示:
import random
freq=[0]*13
for i in range(1000):
Sum=random.randint(1,6)+random.randint(1,6)
#compute the sum of two random numbers
freq[sum]+=1
#add on the frequency of a particular sum
for Sum in xrange(2,13):
print Sum, freq[Sum]
#Print a column of sums and a column of their frequencies
然而,我没有得到任何结果。
发布于 2014-01-08 04:34:29
您不应该使用Sum
,因为简单变量不应该大写。
您不应该使用sum
,因为这会隐藏内置的sum()
。
使用不同的非大写变量名。我建议使用diceSum
;这也说明了一些上下文、程序背后的想法等等,这样读者就能更快地理解它。
你不想让你的代码读者高兴吗?再想一想。你在这里寻求帮助;-)
发布于 2014-01-08 04:00:33
试试这个:
import random
freq=[0]*13
for i in range(1000):
Sum=random.randint(1,6)+random.randint(1,6)
#compute the sum of two random numbers
freq[Sum]+=1
#add on the frequency of a particular sum
for Sum in xrange(2,13):
print Sum, freq[Sum]
#Print a column of sums and a column of their frequencies
sum上有一个语法大小写错误
python使用的种子生成器应该可以满足您的任务。
发布于 2014-01-08 04:05:58
看上去是个错误。Sum
变量被错误地键入为sum
。
下面是python 3.x中的修改代码
#!/usr/bin/env python3
import random
freq= [0]*13
for i in range(1000):
#compute the sum of two random numbers
Sum = random.randint(1,6)+random.randint(1,6)
#add on the frequency of a particular sum
freq[Sum] += 1
for Sum in range(2,13):
#Print a column of sums and a column of their frequencies
print(Sum, freq[Sum])
https://stackoverflow.com/questions/20994940
复制