使用pygal模拟掷骰子

  • pygal的安装
    •   通过pycharm 直接安装
    • Die class
      from random import randint
      
      
      class Die:
          """表示一个骰子的类"""
      
          def __init__(self, num_sides=6):
              self.num_sides = num_sides
      
          def roll(self):
              """返回一个位于1和骰子面数之间的随机值"""
              return randint(1, self.num_sides)
      

        

    • 代码如下:
      import pygal
      from die import Die
      
      count = 50000
      die1Count = 6
      die2Count = 6
      die1 = Die(die1Count)
      die2 = Die(die2Count)
      results = []
      for roll_num in range(count):
          result = die1.roll() + die2.roll()
          results.append(result)
      
      frequencies = []
      max_result = die1.num_sides + die2.num_sides
      for value in range(2, max_result+1):
          frequency = results.count(value)
          frequencies.append(frequency)
      
      # 可视化结果
      hist = pygal.Bar()
      
      hist.title = "Result of rolling  D"+str(die1Count) + " + D"+str(die2Count)+" dice "+str(count)+" times"
      labels =[]
      for l in range(2, max_result+1):
          labels.append(str(l))
      hist.x_labels = labels
      hist.x_title = "Result"
      hist.y_title = "Frequency of Result"
      hist.add('D'+str(die1Count) + '+ D'+str(die2Count), frequencies)
      hist.render_to_file('dice_visual'+str(count)+'.svg')
      

        

    • 运行结果:

       

posted on 2018-05-22 15:50  endian11  阅读(151)  评论(0)    收藏  举报

导航