掷色子的问题总会出现在概率课本中,老师们都喜欢拿这个耳熟能详的事件来举例子,但今天我们不讲概率,我们来用Python模拟掷色子。

用random模块我们可以轻易地模拟输出点数(一般我们取的这个点数是色子顶上的点数),即随机生成一个1-6的数字。

random.randint(1,6)

的确非常容易,但如果我们想要知道色子的正面反面,左面右面的数值,又该如何计算呢?

本着求知探索精神, 我翻箱倒柜找到一枚祖传色子,来仔细观察一下。

我们可以发现,每个点数的对面点数相加都为7,即1的对面点数为6,剩下的2,3,4,5也对称的分布在1的四侧(2,5相对,3,4相对)。但是其四面的顺序,从不同的角度观测其排列顺序方式也是不同的,还是以顶上点数1为例,从点数2开始按照顺时针我们可以看到2,4,5,3,从点数4开始按照顺时针我们可以看到4,5,3,2,而这些序列构成一个环状。而这些环状数组,我们可以直接用列表来表示,1-6点的顺时针侧面点数列表如下所示

[2,4,5,3]

[1,3,6,4]

[1,5,6,2]

[1,2,6,5]

[1,4,6,3]

[2,3,5,4]

因此,想要描述一个色子的每一面就有了思路,首先随机生成一个数字,直接当作顶部的数字;接着随机生成一个状态,表示从其对应数组的某一位开始,也可以直观地理解为从不同角度看过去;最后输出不同位置的点数,用手绘立方体的方式打印出色子。

rand_number=random.randint(0,5)

rand_state=random.randint(0,3)

def throw():

print(" __ __ __\n");

print(" /%d/ |\n"%(rand_number+1))

print(" __ __ __ |\n")

print(" | |%d|\n"%dice[rand_number][(rand_state+1)%4])

print("%d|%d| /\n"%(dice[rand_number][(rand_state+3)%4],dice[rand_number][(rand_state+2)%4]))

print(" __ __ __ /\n")

print("%d\n"%(6-rand_number))

下面请欣赏我的灵魂画作之画色子~

python投掷骰子实验报告_用Python来掷个色子玩~相关推荐

  1. python投掷骰子实验报告_用Python模拟掷骰子

    在循环中掷骰子:def dice(n): total = 0 for i in range(n): total += random.randint(1, 6) return total 当对整数求和时 ...

  2. python图书馆管理系统实验报告_基于Python的图书馆业务报表自动生成研究

    龙源期刊网 http://www.qikan.com.cn 基于 Python 的图书馆业务报表自动生成研 究 作者:辛海滨 来源:<电脑知识与技术> 2016 年第 27 期 摘要:针对 ...

  3. python通信原理实验报告_【Python之旅】第五篇(一):Python Socket通信原理-阿里云开发者社区...

    只要和网络服务涉及的,就离不开Socket以及Socket编程,下面就说说Python Socket通信的基本原理. 1.Socket socket也称作"套接字",用于描述IP地 ...

  4. python图书馆管理系统实验报告_基于python图书馆管理系统设计实例详解

    写完这个项目后,导师说这个你完全可以当作毕业项目使用了,写的很全,很多的都设计考虑周全,但我的脚步绝不止于现在,我想要的是星辰大海!与君共勉! 这个项目不是我的作业, 只是无意中被拉进来了,然后就承担 ...

  5. python 投掷骰子实验

    python 投掷骰子实验 import randomdef roll(sides=6):num_rolled = None'*** 随机产生1-6之间的整数 ***'num_rolled = ran ...

  6. python投掷骰子实验实验结论_博饼伤我心我,决定用Python对投骰子(色子)做数据分析...

    pygal 是非常不错的 python 可视化包,它可以生成矢量图,从而在不同尺寸的屏幕上都可以获得良好的显示效果.具体安装使用请参考官方文档.今天小狼举个投骰子的栗子,看一下不同点数的概率分布情况. ...

  7. python数据分析实验报告_用Python处理实验数据

    开篇语 近来忙于考试以及应付专业课,基本很少写简书了.昨晚攻坚了三个学生工作的任务(妈妈的吻.好久没有这么疯狂工作了.还是很爽的哦!) 只恨这张图没有标记时间,其实已经是十二点四十多了 今天难得清静, ...

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

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

  9. 太原理工大学linux与python编程r实验报告_太原理工大学算法设计与分析实验报告...

    <太原理工大学算法设计与分析实验报告>由会员分享,可在线阅读,更多相关<太原理工大学算法设计与分析实验报告(12页珍藏版)>请在人人文库网上搜索. 1.本科实验报告课程名称: ...

最新文章

  1. AOP原理-创建AOP代理--AnnotationAwareAspectJAutoProxyCreator【InstantiationAwareBeanPostProcessor】的作用
  2. 关于前台调用后台事件__doPostBack函数
  3. golang map源码分析
  4. 看一下即将发布的JSF 2.3 Push支持
  5. linux配置redis服务,记一次linux下安装redis, 设置redis服务, 及添加环境变量
  6. DetNAS:首个搜索物体检测Backbone的方法 | NeurIPS 2019
  7. 项目展示-新浪微博客户端
  8. 机器学习之决策树_CART算法
  9. ddr3配置 dsp6678_简简单单学TI 多核DSP(2):TMS320C6678的时钟配置
  10. 林淮川孙玄:分布式锁选型背后的架构设计思维【附源码】
  11. CGAL点云重建白膜
  12. 关于解决“无法定位程序输入点于动态链接库”问题的思路
  13. unity 制作行李箱密码
  14. 第四周-C语言 圆柱体表面积计算
  15. python怎么换行输入print_python中print换行的方法
  16. jav学习日记:多线程(一)
  17. 技术人员近业务,会困死在一条船上吗?
  18. LABVIEW绘制等高线
  19. calendar的使用。以及如何获取某月份最后一天的方法
  20. css实现鼠标禁用(鼠标滑过显示红色禁止符号)

热门文章

  1. STM32新建标准库工程
  2. DT时代,大数据最核心的意义是什么?
  3. 顺丰科技运维开发工程师HR面面经
  4. [js倒计时]指定对应时间自动倒计时
  5. java.lang.ClassNotFoundException: org.apache.axiom.om.OMNode
  6. 智慧养老解决方案的背景
  7. AGV调试随手记(一)——型号:MIR250
  8. 【财经期刊FM-Radio|2020年11月24日】
  9. 智慧公园管理系统整体解决方案
  10. matlab对信号积分,对信号求积分 - Simulink - MathWorks 中国