python编程15讲答案,[Python编程:从入门到实践] 第十五章:生成数据 习题答案
Python 小白提交答案,有不足请老鸟们指点,谢谢~
15-8 同时投掷三个骰子:如果你同时掷三个D6骰子,可能得到的最小点数为3,而最大点数为18,。请通过可视化展示同时掷三个D6骰子的结果
"""我编了一个任意数量任意面骰子投掷结果相加的程序"""
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import pygal
from die import Die15
# 創造N個骰子實例
die_sides = [8, 8,8]
dice = []
for die_side in die_sides:
die = Die15(die_side)
dice.append(die)
roll_results = []
# 投指定次數
roll_times = 10000
for roll_num in range(roll_times):
roll_result = 0
for die in dice:
roll_result += die.roll()
roll_results.append(roll_result)
# print(results)
max_result = 0
min_result = len(dice)
for die in dice:
max_result += die.num_sides
# 統計結果
frequencies = []
for value in range(min_result, max_result + 1):
frequency = roll_results.count(value)
frequencies.append(frequency)
# print(frequencies)
# 對結果可視化
hist = pygal.Bar()
str_dice = ''
for die in dice:
str_dice = str_dice + ' D' + str(die.num_sides)
hist.title = "Result of rolling " + \
str(len(dice)) + " dice of " + str_dice + " on %d times" % roll_times
hist.x_labels = [x for x in range(min_result, max_result + 1)]
hist.x_title = "Result"
hist.y_title = "Frequency of Result"
hist.add('Die', frequencies)
hist.render_to_file('n_dice_visual.svg')
15-9 将点数相乘:同时掷两个骰子时,通常将它们的点数相加。通过可视化展示将两个骰子的点数相乘的结果
"""我编了一个任意数量任意面骰子投掷结果相乘的程序"""
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import pygal
from die import Die15
from collections import Counter
# 創造N個骰子實例
die_sides = [6, 6, 6]
dice = [Die15(die_side) for die_side in die_sides]
roll_results = []
# 投指定次數
roll_times = 10000
for roll_num in range(roll_times):
roll_result = 1
for die in dice:
roll_result *= die.roll()
roll_results.append(roll_result)
# 计算投掷结果的范围
max_result = 1
min_result = 1
for die in dice:
max_result *= die.num_sides
# 用dict統計結果
frequencies = {}
values = list(range(min_result, max_result + 1))
for value in values:
frequencies[value] = roll_results.count(value)
# 删除概率为0的结果,即删除不可能的投掷结果
del_keys = []
for k, v in frequencies.items():
if v == 0:
del_keys.append(k)
for del_key in del_keys:
del frequencies[del_key]
# 對結果可視化
hist = pygal.Bar()
str_dice = ''
for die in dice:
str_dice = str_dice + ' D' + str(die.num_sides)
hist.title = "Result of rolling " + \
str(len(dice)) + " dice of " + str_dice + " on %d times" % roll_times
hist.x_labels = [x for x in sorted(frequencies.keys())]
hist.x_title = "Result"
hist.y_title = "Frequency of Result"
hist.add('Die', frequencies.values())
hist.render_to_file('n_dice_plus_visual.svg')
python编程15讲答案,[Python编程:从入门到实践] 第十五章:生成数据 习题答案相关推荐
- python编程从入门到实践答案-《Python编程:从入门到实践》第五章 if语句 习题答案...
#5.1 major = 'Software Engineering' print("Is major =='Software Engineering'? I predict True.&q ...
- python快速编程入门课后题答案-《Python编程:从入门到实践》第五章 if语句 习题答案...
#5.1 major = 'Software Engineering' print("Is major =='Software Engineering'? I predict True.&q ...
- c++primer(第五版) 第十五章 面向对象程序设计习题答案
纯原创 转载请注明出处:http://blog.csdn.net/axuan_k 略过书上有现成代码的题目 15.1 15.2 15.1 虚成员是基类中的概念 基类中的某些函数希望它的派生类能 ...
- 《Python网络爬虫——从入门到实践》第六章将数据存储至MySQL数据库的学习心得与总结(出错与纠正方法)
<Python网络爬虫--从入门到实践>第六章将数据存储至MySQL数据库的学习心得与总结(出错与纠正方法) 作为刚开始入门python的小白,对大数据,网络爬虫比较感兴趣.完全是自我修炼 ...
- 《Python编程从入门到实践》第五章414
5-1 条件测试 5-2 更多的条件测试 5-3 外星人颜色 #1 5-4 外星人颜色 #2 5-5 外星人颜色 #3 5-6 人生的不同阶段 5-7 喜欢的水果 5-8 以特殊方式跟管理员打招呼 5 ...
- Python 编程从入门到实践 第十二章 飞船开始游戏时靠着边界的问题解决办法
注:图中标识的1,2,3,4 就是所指向的那一行代码,上面是本人的正确代码 解决办法:书上的代码内容顺序是1代码在2代码的前面,其实只要把1代码放到2代码后面就可以解决靠边的问题 飞船初始靠边原因:1 ...
- 《Python语言程序设计》王恺 王志 李涛 机械工业出版社 第3章 函数 课后习题答案【强烈推荐】
点个
- 《Python语言程序设计》王恺 王志 李涛 机械工业出版社 第4章 面向对象 课后习题答案【强烈推荐】
点个
- 《Python语言程序设计》王恺 王志 李涛 机械工业出版社 第6章 字符串 课后习题答案【强烈推荐】
点个
最新文章
- 浅谈网络协议(四) IP的由来--DHCP与PXE
- (转)HLSL,函数列表
- 上海python培训班-上海哪家python培训班比较靠谱?
- requests库详解
- Android Studio 使用小技巧
- HDU1273 漫步森林【水题】
- Python发邮件的小脚本
- 用二叉链表存树(孩子兄弟表示法)
- BiShop 模式识别与机器学习
- php里无法找到该网页,thinkphp搭建网站后端,入口文件找不到(无法加载)
- 在校招中,应届生们如何写出简洁的 Android 开发简历,减少被刷的机率
- Nacos 原理 Jraft Distro Grpc 持续跟新中...
- 线程池使用不当导致系统假死
- AXI总线简介(二)
- position:fixed;支持ie6,清除e6下抖动。
- 介绍ping中的TTL是什么意思
- Jboot 跨域请求
- Laravel + Laragon 搭建php项目
- 计算机各键的名称和作用,space是什么键 键盘键位名称及功用详解
- 战略到底在研究什么?
热门文章
- 处理文本框的鼠标事件,判断鼠标的状态
- c++全局变量,局部变量不赋初值的区别
- 【读书笔记】MongoDB管理与开发精要(1)
- 跨域产生的原因及解决方法
- 《转》 ImportError: No module named caffe 的解决方案
- C#自定义异常 统一异常处理
- 解决jenkins控制台中文乱码问题
- chrome插件开发记录(1)——解决问题“清单文件缺失或不可读”
- 怎样解决VMware虚拟机无法连接外网问题
- 如果我有jQuery背景,那么“ AngularJS中的思考”吗? [关闭]