问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

python 掷骰子程序

发布网友 发布时间:2022-04-25 16:07

我来回答

2个回答

懂视网 时间:2022-04-18 10:06

1、猜次数

1-6中每个数字出现的次数
# 导入包
import pygal
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei'] # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False # 用来正常显示负号
from random import randint
# 利用随机数据模拟掷骰子
# 每次显示1-6中的一个数

num_sides = 6 # 骰子的6个面
def getData(N, times):
 """
 定义函数,获取投掷数据
 N: 表示一次用几个骰子投
 times:表示总共投几次
 """ 
 results = [] 
 for n in range(1,N+1): 
 for roll_num in range(times):
  result = randint(1,num_sides)
  results.append(result) 
 return results
# 打印投掷结果
print(getData(1,10)) # 1个骰子掷10次
print(getData(2,5)) # 2个骰子掷5次
[2, 2, 2, 2, 1, 6, 4, 4, 5, 5]
[4, 3, 5, 6, 2, 2, 3, 6, 4, 4]
# 分析结果# 统计每个数字出现的次数并显示图片
 # N: 表示一次用几个骰子投
 # data 表示投掷数据def showResult(N, times):
 frequencies = [] for value in range(1, num_sides+1):
 frequency = getData(N, times).count(value)
 frequencies.append(frequency) # 数据可视化
 # 本次利用 pygal 生成SVG格式矢量图
 hist = pygal.Bar()
 hist.title = str(N)+"个骰子掷"+ str(times) +"次的结果"
 hist.x_labels = ['1','2','3','4','5','6']
 hist.x_title = "点数"
 hist.y_title = "出现次数"

 hist.add(str(N)+'骰子', frequencies)
 hist.render_to_file('1-'+str(N)+str(times)+'.svg') # 储存为矢量图
# 一个骰子掷10,100, 1000, 10000次结果分析showResult(1,10)
showResult(1,100)
showResult(1,1000)
showResult(1,10000)

这里写图片描述

# 2个骰子掷10,100, 1000, 10000次结果分析showResult(2,10)
showResult(2,100)
showResult(2,1000)
showResult(2,10000)

这里写图片描述

3个骰子、4个骰子就不再截图了。

我们发现在投掷的次数越多,每个数出现的概率越接近,最后趋向于相同。

2、猜大小

每次投掷点数和
# 每次投掷点数和def getData2(N, times):
 """
 定义函数,获取投掷数据
 N: 表示一次用几个骰子投
 times:表示总共投几次
 """ 
 results = [] for roll_num in range(times):
 result = 0
 for n in range(1,N+1):
  result += randint(1,num_sides)
 results.append(result) 
 return results
# 打印投掷结果print(getData2(1,10)) # 1个骰子掷10次print(getData2(2,5)) # 2个骰子掷5次
[4, 3, 6, 2, 5, 4, 5, 3, 6, 2]
[6, 10, 5, 8, 7]
# 分析结果# 统计数字和出现的次数并显示图片
 # N: 表示一次用几个骰子投
 # data 表示投掷数据def showResult2(N, times):
 frequencies = [] for value in range(N, N*num_sides+1):
 frequency = getData2(N, times).count(value)
 frequencies.append(frequency) # 数据可视化
 # 本次利用 matplotlib 生成图片
 x_num = N*num_sides+1-N
 idx = np.arange(x_num)
 width = 0.5
 sn = str(N)
 sm = str(times)
 x_labels = [str(n) for n in range(N, N*num_sides+1)] # X轴刻度

 plt.bar(idx, frequencies, width, color='red', label=sn+'个骰子')
 plt.xlabel('点数和')
 plt.ylabel('出现次数')
 plt.title(sn+'个骰子投掷'+ sm +'次的结果')
 plt.xticks(idx, x_labels)
 plt.legend() # 显示图例
 plt.show()

1颗骰子猜大小没多大意义,我们直接来分析两骰子的情况。

# 2个骰子掷10,100, 1000, 10000次结果分析showResult2(2,10)
showResult2(2,100)
showResult2(2,1000)
showResult2(2,10000)

这里写图片描述

# 3个骰子掷10,100, 1000, 10000次结果分析showResult2(3,10)
showResult2(3,100)
showResult2(3,1000)
showResult2(3,10000)

这里写图片描述

# 4个骰子掷10,100, 1000, 10000次结果分析showResult2(4,10)
showResult2(4,100)
showResult2(4,1000)
showResult2(4,10000)

这里写图片描述

从上面几图中我们可以看到,当投掷次数足够多时,出现大/小点数出现的概率基本相同,点数大小呈现正态分布的特点。

相关推荐:

练手小程序:craps掷骰子游戏

掷骰子问题

热心网友 时间:2022-04-18 07:14

一共有多少个骰子,设为num个,然后执行randrange(sides)+1 num次,意思就是每个骰子做了一次投骰子的,然后拿到每次投筛子后的值。randrange(sides)+1 ,至少是1,最多是骰子的最大值
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
找专业防水队做完还漏水怎么维权 法院会受理房屋漏水造成的纠纷吗? 巴西龟最长活多久,家养!!! 养胃的药最好的是什么啊 婴儿积食发烧不愿吃药怎么办 板门穴位在哪个部位 手机设置放偷看的方法? 凝结水回收器生产厂家? 个人账户养老金预测公式:现有5万元,缴费20年,能领多少钱? 临沂比较有名的男装品牌 香蕉奶冻的做法,香蕉奶冻怎么做 3号申购的新股,今天晚上会解冻资金么? 3号申购的新股,今天晚上会解冻资金么? python编写抽奖程序? 速求!请问双皮奶和布丁的区别?? 天能重工几年大跌 请问胶州天能重工今天上不上班请问天能重工的座机电话是多少? 重疾保险产品对用户的好处 奶冻怎么做,就是牛奶布丁 查询上市公司天能重工相关信息 天能重工,主营是什么? 奶冻和布丁的区别? 庆云天能重工塔筒制造有限公司怎么样? 青岛天能重工股份有限公司怎么样? 榆林天能重工风力发电有限公司怎么样? 天能重工什么时间开盘上市? 中国重工上市了吗?代码多少? 天能重工什么时候开盘 天能重工上市后几个涨停 中签500股,发行价41.57能赚多少钱 中国重工中签号查询 中国重工有没有中签? 中国重工有没有中签? 保险对客户有什么好处 新股发行若以100股为单位,中签率会高吗?对散户会有利吗? 如在在Python中编写一个关于掷骰子的程序?急急急 新股发行若以100股为单位,中签率会高吗?对散户会有利吗? 请问天能重工今天上不上班儿? 请问天能重工今天上不上班儿? 做奶冻和双皮奶时,牛奶可以用蒙牛纯牛奶吗?做出来好吃吗?你们平时在家怎样做奶冻和双皮奶的?希望讲... 谁知道黑糖仙草奶冻怎样做好吃呢? 解释奶冻的口感韧性和高分子化合物的什么特性有关? 平安福对客户的好处 椰子冻和椰奶冻哪个好吃? 求用Python写出这个程序的代码 买保险客户最关系什么好处 用Python语言编写简单程序,谢谢 做椰奶冻可以不放牛奶和奶油吗 要求用python程序设计 小米摄像头怎么连接小米摄像头把电缘关了会起动电会动吗? python怎么编程这个程序?