900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 掷骰子python代码_Python之使用Pygal模拟掷骰子

掷骰子python代码_Python之使用Pygal模拟掷骰子

时间:2018-07-02 09:14:24

相关推荐

掷骰子python代码_Python之使用Pygal模拟掷骰子

引言

在本节中,我们将使用Python可视化包Pygal来生成可缩放的矢量图形文件。对于需要在尺寸不同的屏幕上显示的图表,这很有用,因为它们将自动缩放,以适合观看者的屏幕。如果你打算以在线方式使用图表,请考虑使用Pygal来生成它们,这样它们在任何设备商显示时都会很美观。

在这个项目中,我们将对掷骰子的结果进行分析。掷6面的常规骰子时,可能出现的结果为1~6点,且出现每种结果的可能性相同。然而,如果同时掷两个骰子,某些点数出现的可能性将比其他点数大。为确定哪些点数出现的可能性最大,我们将生成一个表示掷骰子结果的数据集,并根据结果绘制出一个图形。

在数学领域,常常利用掷骰子来解释各种数据分析,但是它在赌场和其他博弈场景中也得到了实际应用,在游戏《大富翁》以及众多的角色扮演游戏中也是这样。

安装Pygal

请使用pip来安装pygal,我们只需要执行命令:

pip install --user pygal==1.7

就可以把pygal安装上了。

Pygal画廊

要了解Pygal可创建什么样的图表,请查看图表类型画廊,我们只需要去pygal的官方网站查看相关文档即可。

下面我们来创建一个类模拟掷一个骰子:

方法__init__( )接受一个可选参数。创建这个类的实例时,如果没有指定任何实参,面熟默认为6;如果指定了这个实参,这个值将用于设置骰子的面数。骰子是根据面数命名的,6面的骰子名为D6,8面的骰子名为D8,以此类推。

方法roll( )使用函数randint( )来返回一个1和面数之间的随机数。这个函数可能返回起始值,终止值num_sides或这两个值之间的任何整数。

掷骰子

使用这个类创建图表前,先来掷D6骰子,将结果打印出来,并检查结果是否合理:

我们首先创建了一个Die实例,其面数为默认值6。然后掷骰子100次,并将每次的结果都存储在列表results中。下面是一个实例结果集。

通过快速扫描这些结果可知,Die类看起来没有问题。我们见到了值1~6,这表明返回了最大和最小的可能值;我们没有见到值0和7,这表明结果都在正确的范围之内。我们还见到了1~6之间的其他所有可能结果都在我们的数据集中出现了。

分析结果

为了分析掷一个6面的骰子结果,我们计算每个点出现的次数:

由于我们将使用Pygal来进行分析,而不是将结果打印出来,因此可以将模拟掷骰子的次数增加到1000次,为了分析结果我们创建了空列表frequencies,用于存储每种点数出现的次数。然后我们遍历可能的点数(这里为1~6),计算每种点数在results中出现了多少次,并将这个值附加到列表frequencies的末尾。接下来,我们在可视化之前将其打印出来:

结果看起来是合理的,我们看到了6个值:掷D6骰子的时候可能出现每个点数对应一个;我们还发现,没有任何点数是高出其他点数很多的。

接下来我们就可以利用这些数据进行我们直方图的绘制啦

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。