Python:从入门到实践 习题15-9 将点数相乘

15-9 将点数相乘:同时掷两个骰子时,通常将它们的点数相加。请通过可视化展示将两个骰子的点数相乘的结果

要点:保存两个骰子投掷点数相乘的所有可能结果,且列表中数值无重复!!注意:所得乘积不连续!!

from die import Die
import pygal

#创建两个点数不同的骰子
die_1=Die()
die_2=Die(10)

#投掷多次并将相乘结果记录在列表中
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):
    if results.count(value):
       frequency=results.count(value)
       frequencies.append(frequency)

#可视化结果
#将所有可能的乘积保存在列表xs中,所得乘积并不连续
xs=[]
for value in range(1,max_result+1):
    if value in results:
       xs.append(value)
hist=pygal.Bar()
hist.title = "Results of rolling a D6 and a D10 50,000 times." 
hist.x_labels=xs
hist.x_title = "Result" 
hist.y_title = "Frequency of Result" 

hist.add('D6 * D10', frequencies) 
hist.render_to_file('multiply_visual.svg') 

 

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值