码迷,mamicode.com
首页 > 其他好文 > 详细

掷骰子

时间:2018-11-28 22:08:53      阅读:166      评论:0      收藏:0      [点我收藏+]

标签:col   分享   init   ret   class   nbsp   生成   图片   sel   

模拟同时掷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)

 生成图

技术分享图片

掷骰子

标签:col   分享   init   ret   class   nbsp   生成   图片   sel   

原文地址:https://www.cnblogs.com/ruanshuai/p/10034392.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!