本次练习是通过python的pygal来模拟掷骰子的结果。我先创造了一个骰子类(Die),这个类的骰子都有6个面,点数分别是1~6。然后由这个类创建两个实例die1和die2。模拟的是随机投掷这两个筛子n次,输出这n次的投掷结果。为了方便分析,我输出了这n(n=1000)次投掷中,不同点数出现的次数,并绘制了条形图。具体代码如下:

import matplotlib.pyplot as plt
import pygal
from random import randint
#创建Die骰子类
class Die():def __init__(self,num_sides=6):self.num_sides=num_sidesdef roll(self):return randint(1,self.num_sides)
#创建实例
die1=Die()
die2=Die()
result=[]
#将每次投掷的点数和存储在列表frequences中
for n in range(1000):a=die1.roll()+die2.roll()result.append(a)
frequences=[]
#统计各个点数和出现的次数并绘图
for value in range(2,die1.num_sides+die2.num_sides+2):frequency=result.count(value)frequences.append(frequency)   #print("%d : %d"%(value,frequency))
print(frequences)
hist=pygal.Bar()
hist.title="Result of rolling one D6 1000 times"
hist.x_labels=['2','3','4','5','6','7','8','9','10','11','12']
hist.x_title="Result"
hist.y_title="Frequency of result"
hist.add('D6',frequences)
hist.render_to_file('die_visual.svg')

输出如下(截图):

输出的图片为svg格式,当鼠标指向某一点数时,会显示出该点数出现的次数。由上图发现,当同时投掷两个6面筛子,各点数出现的次数符合正态分布。这一分布也符合数学逻辑。投掷一次所有可能出现的结果如下:

由上图可以看出共有11中结果,不同结果出现的次数是不一样的。所以各点数和出现的概率为:

各个点数出现的概率也服从正态分布,结果和投掷1000次的结果吻合。

pygal模拟掷骰子相关推荐

  1. Python:使用Pygal模拟掷骰子练习题

    来源:<Python编程:从入门到实践> 文章目录 1 1.1 安装Pygal 1.2 Pygal画廊 1.3 创建Die类 1.4 掷骰子 1.5 分析结果 1.6 绘制直方图 1.7 ...

  2. Python入门:使用Pygal模拟掷骰子

    来源:<Python编程:从入门到实践> 目录 1.安装Pygal 2.Pygal画廊 3.创建Die类 4.掷骰子 5.分析结果 6.绘制直方图 7.同时掷两个骰子 8.同时掷两个面数不 ...

  3. Pygal简单使用——模拟掷骰子

    目录 1.创建Die类 2.掷骰子 3.分析结果 4.绘制直方图 在这个项目中,我们将对掷骰子的结果进行分析.掷6面的常规骰子时,可能出现的结果为1~6点,且出现每种结果的可能性相同. 然而,如果同时 ...

  4. 掷骰子python代码_Python 使用matplotlib模块模拟掷骰子

    掷骰子 骰子类 # die.py 骰子类模块 from random import randint class Die(): """骰子类""&quo ...

  5. python投掷骰子实验_Python小程序--模拟掷骰子

    案例描述 · 通过计算机程序模拟抛掷骰子,并显示各点数的出现次数及频率 · 比如,抛掷2个骰子50次,出现点数为7的次数是8,频率是0.16 版本1.0 1.0功能:模拟抛掷1个骰子,并输出其结果 如 ...

  6. 如何生成随机数(模拟掷骰子的过程)-C语言

    初步掷六面骰子 目录 初步掷六面骰子 将随机数产生器随机化 我们再模拟掷骰子时,因为掷骰子的时候,骰子的六个点数的出现是机会均等的,因此为了让我们的模拟过程更加的科学,会用到随机数的生成. 但是骰子的 ...

  7. 编写程序模拟掷骰子游戏。已知掷骰子游戏的游戏规则为:每个骰子有6面,这些面包含1、2、3、4、5、6个点,掷两枚骰子之后,计算点数之和。

    编写程序模拟掷骰子游戏.已知掷骰子游戏的游戏规则为:每个骰子有6面,这些面包含1.2.3.4.5.6个点,掷两枚骰子之后,计算点数之和.如果第一次掷的点数和为7或11,则游戏者获胜:如果第一次掷的点数 ...

  8. 投掷骰子的python代码_Python基础篇——模拟掷骰子小游戏

    写在前面 ↓ 骰子是我们经常能看到的小玩意儿,今天我们来做一个模拟掷骰子过程的文字版小游戏,送给幻想编程岛新接触Python的初学者们~ 注:本教程基于64位windows系统(鼠标右键点击桌面&qu ...

  9. 【程序12】模拟掷骰子游戏

    /*[程序12] * 实例:模拟掷骰子游戏 * 由用户输入骰子数量和参赛人数,然后由计算机随机生成每一粒骰子的数量, * 再累加起来就得到每一个选手的总点数. */ import java.util. ...

最新文章

  1. iptables从入门到放弃
  2. Failed to read schema document ‘http://code.alibabatech.com/schema/dubbo/dubbo.xsd‘问题解决方法
  3. TCP和UDP的区别(转)
  4. 关于 .Net Core runtimeconfig 文件说明
  5. python打印长方形_利用python打印出菱形、三角形以及矩形的方法实例
  6. mysql教程排序_MySQL中的排序函数field()实例详解
  7. JDK安装、java环境配置
  8. Selenium自动化测试-浏览器基本操作
  9. HTML:select、option中设置默认值,且默认值不在下拉框中出现
  10. 使用GDB进行调试 -- 1 应用场景
  11. 使用Poedit汉化wordpress主题和插件
  12. 解决eclipse桌面快捷方式打不开的问题
  13. @interface List
  14. c语言共阳极数码管的数据,LY-51S(STC89C52R):8个共阴极数码管-程序(1)
  15. 安卓APP源码和设计报告——基于Android的垃圾分类系统
  16. 计算机函数说课ppt,《excel公式与函数》说课稿
  17. 车内贵重物品检测方案总结
  18. vue-router前端路由的两种模式的区别
  19. torch.cat()的类型转换
  20. 如何用Zabbix监控OpenWrt路由器-Zabbix-Agent安装篇

热门文章

  1. 让工作快乐的6大秘诀(工作重要,好的心情更重要哟,要做开心的自己)
  2. 关于亚马逊云的负载均衡器(AWS-LD)的相关问题记录
  3. module 'pandas' has no attribute ‘XXX’
  4. “互联网+”时代汽车消费群体研究报告(一)
  5. 电子门禁系统及智能IC卡标准与产品
  6. 剑灵建元服务器位置,韩服12月新版本 剑灵建元成道部分资料一览
  7. 【python】设计一个游戏角色类 属性:角色名、血量、魔法、状态 方法:释放技能 被伤害 要求:设计要合理
  8. html代码右上角标签,html实现上角标的效果
  9. 南方都市报评论:我们为什么一定要学外语?
  10. 关于个人简历中如何书写技能介绍的建议