随机模块中的函数
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
但是,我没有得到任何结果。
答案 0 :(得分:1)
您不应该使用Sum
,因为简单变量不应该大写。
您不应该使用sum
,因为这会影响内置sum()
。
使用不同的非大写变量名称。我建议diceSum
;这也说明了上下文,程序背后的想法等等,以便读者更快地理解它。
您不想让您的代码的任何读者感到高兴吗?再想想。你在这里寻求帮助; - )
答案 1 :(得分:0)
试试这个:
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
总和
上有语法案例错误python使用的种子生成器应该足以完成你的任务。
答案 2 :(得分:0)
看起来像拼写错误。 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])