掷骰子
Posted ruanshuai
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了掷骰子相关的知识,希望对你有一定的参考价值。
模拟同时掷1个6面骰子和1个10面骰子10000次,并可视化所得点数的频率,用到pygal库。
import pygal from random import randint class Die: """模拟一个掷骰子的类""" def __init__(self, num_sides=6): """初始化类的属性""" self.num_sides = num_sides def roll(self): """返回掷骰子的点数""" return randint(1, self.num_sides) #创建一个6面骰子和10面骰子 die_1 = Die() die_2 = Die(10) #统计掷10000次所得点数 results = [die_1.roll() + die_2.roll() for roll_num in range(10000)] #统计所得点数的频率 frequencies = [results.count(result) for result in range(2, die_1.num_sides + die_2.num_sides + 1)] #数据可视化 hist = pygal.Bar() hist.x_labels = [result for result in range(2, die_1.num_sides + die_2.num_sides + 1)] hist.x_title = "Result" hist.y_title = "Frequencies of Result" hist.add(‘D6 + D10‘, frequencies) hist.render_to_file(‘die_visual.svg‘)
生成图
以上是关于掷骰子的主要内容,如果未能解决你的问题,请参考以下文章
[leetcode 周赛 149] 1155 掷骰子的N种方法