美文网首页
python模拟投骰子并可视化

python模拟投骰子并可视化

作者: Kimmygogo | 来源:发表于2017-12-28 22:05 被阅读0次

安装pygal库
首先创建一个骰子的类:

from random import randint
class Die():
    """表示一个骰子的类"""
    def __init__(self, num_sides = 6):
        """色子默认6面"""
        self.num_sides = num_sides
    def roll(self):
        """方法roll返回一个位于1和骰子面数之间的随机值"""
        return randint(1, self.num_sides)

来一个简单的6面骰子,投掷10000次并将频数结果可视化

from die import Die
import pygal
# 创建一个6面骰子的实例
die_6 = Die()
num_throw = 10000
results = [die_6.roll() for i in range(num_throw)]
frequencies = [results.count(value) for value in range(1,die_6.num_sides+1)]
hist = pygal.Bar()
hist.title = "Frequencies of 6-sides throw %d times" % num_throw
hist.x_lables = list(range(1,die_6.num_sides+1))
hist.x_title = "Result"
hist.y_title = "Frequencies of each value"
hist.add("D6",frequencies)
hist.render_to_file("D6_%d.svg" % num_throw)
hist.render_to_png("D6_%d.png" % num_throw)
1个6面骰子10000次投掷

这便是一个6面骰子10000次投掷后的频数统计。
再来看下2个6面的骰子点数统计会是如何的呢?

import pygal
from die import Die
die1 = Die()
die2 = Die()
num_throw = 10000

results = [die1.roll() + die2.roll()
           for num in range(num_throw)]
frequencies = [results.count(value)
               for value in range
               (2, die1.num_sides+die2.num_sides+1)]
hist = pygal.Bar()
hist.title = 'Results of two D6 throw %d times' % num_throw
hist.x_labels = list(range(2, die1.num_sides+die2.num_sides+1))
hist.x_title = "Results"
hist.y_title = "Frequency of value"
hist.add('D6+D6', frequencies)
hist.render_to_file('D6_D6.svg')
hist.render_to_png('D6-D6_%d.png' % num_throw)

我们来看下结果:


2个6面骰子10000次投掷

是不是标准的正态分布。
再来看下2个骰子投1000000次呢?我们只需要见num_throw = 1000000再运行程序就行了。看下结果:


2个6面骰子1000000次投掷

是不是跟接近正态分布?

相关文章

  • python模拟投骰子并可视化

    安装pygal库首先创建一个骰子的类: 来一个简单的6面骰子,投掷10000次并将频数结果可视化 这便是一个6面骰...

  • 案例(7):模拟掷骰子

    本章通过模拟掷骰子计算的5案例来进行学习基础的Python程序 案例描述 通过计算机程序模拟抛掷骰子,并显示各点数...

  • 利用Python模拟淘宝搜索以及初步数据分析

    本文讲述如何利用Python模拟淘宝的搜索过程并对搜索结果进行初步的数据可视化分析。 搜索过程的模拟:淘宝的搜索页...

  • python模拟掷骰子

    1、使用Pygal模拟掷骰子1.1 安装Pygalpython -m pip install --user pyg...

  • Python 模拟掷骰子

    代码: 输出:

  • python数据可视化--pygal模拟掷骰子

    '''使用可视化包Pygal生成可缩放的矢量图形文件可以在尺寸不同的屏幕上自动缩放,显示图表''' 分析结果,计算...

  • 使用pygal模拟掷骰子

    模拟骰子六个面的类: 掷骰子并绘制图表: 图表文件保存在当前文件夹中,而且用浏览器才能打开

  • 练习

    模拟投掷两个骰子 10 次。 创建一个骰子模拟,在模拟中生成一个10x3二维张量,其中: 列1和2均存储一个骰子的...

  • 投骰子

    一开始想到写这个主题我是拒绝的,但是我觉得很有趣,就写下了。 上帝投了骰子,制造了许多巧合,这使得人类以为自己掌握...

  • 使用python制作一个抽奖小游戏——骰子游戏

    1.模拟真实环境掷骰子 从Python标准库中调用模块:random——random中包含以各种方式生成随机数的函...

网友评论

      本文标题:python模拟投骰子并可视化

      本文链接:https://www.haomeiwen.com/subject/khcbgxtx.html