【Python 3.7】将点数相乘:同时掷两个骰子时,通常将它们的点数相加。请通过可视化展 示将两个骰子的点数相乘的结果。
其中die.py文件中的程序为:
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)
两个骰子点数相乘的程序为:
import pygal
from die import Die
# 创建两个D6骰子
die_1 = Die()
die_2 = Die()
# 掷骰子多次,并将结果存储到一个列表中
results = []
for roll_num in range(50000):
result = die_1.roll() * die_2.roll()
results.append(result)
# 分析结果
frequencies = []
max_result = die_1.num_sides * die_2.num_sides
for value in range(1, max_result+1):
frequency = results.count(value)
frequencies.append(frequency)
# 可视化结果
hist = pygal.Bar()
hist.title = "Results of rolling two D6 dice 50,000 times."
hist.x_labels = ['1','2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12','13','14','15','16','17','18','19','20'
,'21','22','23','24','25','26','27','28','29','30','31','32','33','34','35','36']
hist.x_title = "Result"
hist.y_title = "Frequency of Result"
hist.add('D6 * D6', frequencies)
hist.render_to_file('两个骰子点数相乘.svg')
可视化结果为:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190612115450289.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2JveWFtZXM=,size_16,color_FFFFFF,t_70)