掷骰子python代码_python模拟掷骰子
1、使用Pygal模拟掷骰子
1.1 安装Pygal
python -m pip install --user pygal
1.2 创建Die类
from random import randint
class Die():
'''表示一个骰子的类'''
def __init__(self,num_sides=6):
'''骰子默认为6面'''
self.num_sides=num_sides
def roll(self):
'''返回一个位于1和骰子面数之间的随机值'''
return randint(1,self.num_sides)
1.3 掷骰子
from die import Die
#创建一个D6
die=Die()
#掷几次骰子,并将结果存储在一个列表中
results=[]
for roll_num in range(10):
result=die.roll()
results.append(result)
print(results)
输出:
[5, 4, 1, 6, 4, 6, 3, 5, 3, 5]
1.4 分析结果
from die import Die
#创建一个D6
die=Die()
#掷几次骰子,并将结果存储在一个列表中
results=[]
for roll_num in range(20):
result=die.roll()
results.append(result)
print(results)
#分析结果
frequencies=[]
for value in range(1,die.num_sides+1):
frequency=results.count(value)
frequencies.append(frequency)
print(frequencies)
输出:
[1, 2, 4, 2, 1, 1, 6, 2, 3, 3, 3, 4, 3, 5, 1, 3, 6, 2, 2, 6]
[4, 5, 5, 2, 1, 3]
1.5 绘制直方图
直方图是一种条形图,指出了各种结果出现的频率。
import pygal
from die import Die
#创建一个D6
die=Die()
#掷几次骰子,并将结果存储在一个列表中
results=[]
for roll_num in range(1000):
result=die.roll()
results.append(result)
print(results)
#分析结果
frequencies=[]
for value in range(1,die.num_sides+1):
frequency=results.count(value)
frequencies.append(frequency)
print(frequencies)
#对结果进行可视化
hist=pygal.Bar() #创建实例
hist.title="Results of rolling one D6 1000 times." #用于标示直方图的字符串
hist.x_lables=['1','2','3','4','5','6'] #将掷骰子的结果用作x轴的标签
hist.x_title="Result" #给x轴添加标题
hist.y_title="Frequency of Result"
hist.add('D6',frequencies) #用add()函数将一系列的值添加到图表中
hist.render_to_file('die_visual.svg') #将图表渲染为一个SVG文件
输出:
image.png
查看生成的直方图,最简单的方式是使用Web浏览器。
pygal让这个图表具有交互性:如果将鼠标指向该图表中的任何条形,将看到与之相关联的数据。
1.6 同时掷两个骰子
import pygal
from die import Die
#创建两个D6骰子
die_1=Die()
die_2=Die()
#掷骰子多次骰子,并将结果存储在一个列表中
results=[]
for roll_num in range(1000):
result=die_1.roll()+die_2.roll() #计算总点数
results.append(result)
print(results)
#分析结果
frequencies=[]
max_result=die_1.num_sides+die_2.num_sides #最大可能点数
for value in range(2,max_result+1):
frequency=results.count(value)
frequencies.append(frequency)
print(frequencies)
#对结果进行可视化
hist=pygal.Bar() #创建实例
hist.title="Results of rolling one D6 1000 times." #用于标示直方图的字符串
hist.x_labels=['2','3','4','5','6','7','8','9','10','11','12'] #将掷骰子的结果用作x轴的标签
hist.x_title="Result" #给x轴添加标题
hist.y_title="Frequency of Result"
hist.add('D6+D6',frequencies) #用add()函数将一系列的值添加到图表中
hist.render_to_file('dice_visual.svg') #将图表渲染为一个SVG文件
输出:
image.png
图表显示总点数为7的可能性最大,总点数为2或12的可能性最小
1.7 同时掷两个面数不同的骰子
import pygal
from die import Die
#创建一个D6和一个D10的骰子
die_1=Die()
die_2=Die(10) #实参为10,表示有10面
#掷骰子多次骰子,并将结果存储在一个列表中
results=[]
for roll_num in range(50000):
result=die_1.roll()+die_2.roll() #计算总点数
results.append(result)
print(results)
#分析结果
frequencies=[]
max_result=die_1.num_sides+die_2.num_sides #最大可能点数
for value in range(2,max_result+1):
frequency=results.count(value)
frequencies.append(frequency)
print(frequencies)
#对结果进行可视化
hist=pygal.Bar() #创建实例
hist.title="Results of rolling a D6 and a D10 50,000 times." #用于标示直方图的字符串
hist.x_labels=['2','3','4','5','6','7','8','9','10','11','12','13','14','15','16'] #将掷骰子的结果用作x轴的标签
hist.x_title="Result" #给x轴添加标题
hist.y_title="Frequency of Result"
hist.add('D6+D10',frequencies) #用add()函数将一系列的值添加到图表中
hist.render_to_file('different_visual.svg') #将图表渲染为一个SVG文件
输出:
image.png
图表显示:可能性最大的点数有5种,即7,8,9,10,11.
总结:使用matplotlib创建简单的图表;使用散点图来探索随机漫步过程;使用Pygal创建直方图;生成数据集及对其进行可视化。
掷骰子python代码_python模拟掷骰子相关推荐
- 掷骰子python代码_Python 使用matplotlib模块模拟掷骰子
掷骰子 骰子类 # die.py 骰子类模块 from random import randint class Die(): """骰子类""&quo ...
- 投掷骰子的python代码_模拟骰子(Python),掷骰子
模拟掷骰子实际是抽取(1~6之间的)随机数问题,涉及random模块,后面版本的数据可视化主要应用matplotlib.pyplot模块. 1.0:模拟一个骰子的结果.首先定义roll_dice()函 ...
- python 入门学习 模拟投掷骰子
本节视频学习使用 python语言实现模拟投掷骰子. 本章节涉及到的知识点有: 1. 通过python模拟随机事件,或生成随机数 random 模块 函数 含义 random() 生成一个[0,1.0 ...
- 投掷骰子的python代码_Python基础篇——模拟掷骰子小游戏
写在前面 ↓ 骰子是我们经常能看到的小玩意儿,今天我们来做一个模拟掷骰子过程的文字版小游戏,送给幻想编程岛新接触Python的初学者们~ 注:本教程基于64位windows系统(鼠标右键点击桌面&qu ...
- 掷骰子python代码_如何使用python的random模拟掷骰子的数据
python是一个很有趣的语言,可以在命令行窗口运行.python支持面向对象的编程方法,这篇经验就告诉你,如何使用python的random模块,模拟掷骰子的数据. 工具/原料 windows系统电 ...
- 掷骰子Python代码
Hello,大家好,这一次我给大家带来的是"掷骰子"的Python代码,不说那么多,上代码喽~ # -*- coding:utf-8 -*- # 摇3次骰子,当总数total,3& ...
- Python:使用Pygal模拟掷骰子练习题
来源:<Python编程:从入门到实践> 文章目录 1 1.1 安装Pygal 1.2 Pygal画廊 1.3 创建Die类 1.4 掷骰子 1.5 分析结果 1.6 绘制直方图 1.7 ...
- python模拟全部代码_Python模拟登陆实现代码
下面分享一个使用Python进行网站模拟登陆的小例子. 原理 使用Cookie技术,绕开网站登录验证.要使用到cookielib库.流程: 创建一个保存Cookie的容器,可选的有CookieJar, ...
- 用 Python 代码来模拟用核弹射击小行星会,最终能否拯救地球?
你有没有想过,如果一颗小行星正冲向地球,而人类向它发射了一颗核武器,会发生什么?它会影响小行星的轨迹吗?我们会活下来吗?瓦砾会怎样?您可能听起来很熟悉这种情况.Armageddon 和 Deep Im ...
- postman生成python代码_python代码直接生成可执行exe文件
前言: python中有一个很厉害的库可以直接将写好的python代码打包成可执行的.exe文件,生成好的文件不需要python运行环境和pycharm等IDE就可以直接双击运行,是不是很厉害呢!这样 ...
最新文章
- ComplexHeatmap包绘制热图(二)
- python绘制动态模拟图-Python 模拟动态产生字母验证码图片功能
- 联想微型计算机 m4350q,比超极本便携 评联想M4350q小型台式机
- Mat详解-OpenCV
- Spring_事务(2)
- 博士笔记 | 周志华《机器学习》手推笔记第二章-模型评估与选择
- Linux中执行shell脚本的5种方法总结
- dfs dtft dft fft
- IK分词器原理研磨及源码改造,更适用生产
- 为计算机房的电脑安装防火墙和杀毒软件,杀毒软件和防火墙的关系,哪个重要...
- 阿里,百度高级程序员力荐2019必看书单—附PDF电子档
- JVM--藤原豆腐店自用
- 【北交所周报】继北证50指数后,北交所推出融资融券交易细则;新股慧为智能上市当日收涨22.13%,远航精密上市即破发;...
- EOS星球秒杀所有的区块链游戏
- 安装redis时 提示执行make命令时提示 CC adlist.o /bin/sh: cc: 未找到命令
- Android:程序锁功能的简单实现
- java-php-python-ssm旅游产品网络销售系统计算机毕业设计
- 关于国企、外企、私企(转)
- 编译原理学习(到LL1文法部分)
- linux支持usb打印机,不用驱动
热门文章
- ROS实践1:publisher详解
- 网络管理员学习笔记_第三章 局域网技术与综合布线_003_局域网基础03
- c语言中专业英文词汇的意思,C语言常见英文词汇表
- java list 时间排序_Java collections.sort()根据时间排序list
- 阿里云数据库开源发布:PolarDB 三节点高可用的功能特性和关键技术
- java调用peopleSoft webservice
- 第五次课堂总结——付胤
- instantDrag for Maya脚本 (移动模型时沿目标模型移动)
- unity Maya中模型动画可能存在的问题总结
- 微信公众号ajax500,普通js使用ajax,微信公众号授权(微信网页授权)