使用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') - 运行结果:
Dana.Lee
To:Dana_Lee1016@126.com
浙公网安备 33010602011771号