Python随机数及其频率

时间:2014-01-08 11:55:29

标签: python random frequency

  

随机模块中的函数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

但是,我没有得到任何结果。

3 个答案:

答案 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])