掷骰子

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种方法

C语言每日一练——第61天:掷骰子游戏

jQuery掷骰子

python之pygal:掷两个不同的骰子并统计大小出现次数

骰子赔率:模拟掷骰子游戏

掷骰子