使用python模拟骰子,并对骰子进行有限次数投掷

您所在的位置:网站首页 如何猜中骰子的点数视频 使用python模拟骰子,并对骰子进行有限次数投掷

使用python模拟骰子,并对骰子进行有限次数投掷

2023-11-06 14:22| 来源: 网络整理| 查看: 265

首先,使用python编写一个类似骰子的类,将其作为投掷的骰子。

创建一个python文件,对文件引入random模块中randint类,random.randint(a,b),用于生成一个指定范围(a,b)内的整数。

创建一个名为Die的类,初始化确定骰子的六个面。在其中创建一个函数“roll"用于返回一个骰子点数。

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)

完成骰子的创建之后,我们再创建一个python文件,对创建的骰子进行投掷并将得到的数据绘制成表。

引入plotly.graph_objs绘图库中Bar和Layout类;再引入plotly中的offline,用于生成图表;最后将之前创建的模拟骰子的类引入。

die=Die()用于运行模拟骰子的类,之后创建一个空列表将骰子每次投掷得出的数据储存在列表中,利用下方代码(分析结果)处,对汇总致空列表的数据进行整理,分别对骰子投出每个点数的数量整理,储存在空列表frequencies中。

对最终得到的数据进行可视化。

最终创建图表。

from plotly.graph_objs import Bar,Layout from plotly import offline from 模拟骰子 import Die #创建一个D6 die = Die() #掷几次骰子并将结果储存在一个列表中 results = [] for roll_num in range(1000): result = die.roll() results.append(result) #分析结果 frequencies = [] for value in range(1,die.num_sides+1): frequency = results.count(value) frequencies.append(frequency) #对结果进行可视化 x_values = list(range(1,die.num_sides+1)) data = [Bar(x=x_values,y=frequencies)] x_axis_config = {'title':'结果'} y_axis_config = {'title':'结果的频率'} my_layout = Layout(title='掷一个D6 1000次的结果', xaxis=x_axis_config,yaxis=y_axis_config) offline.plot({'data':data,'layout':my_layout},filename='d6.html')

该程序每次运行都将骰子投掷1000次汇总成表,每次运行所生成的图表也各不相同。

运行结果:

 

 

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3