Python入门习题3.天天向上
例3.1 一年365天,以第一天的能力值为基数,记为1.0,当好好学习时能力值相比前一天提高1%,当没有学习时能力值相比前一天下降1%。每天努力(dayup)和每天放任(daydown),一年下来的能力值相差多少呢?
解:
dayup = (1.0 + 0.01)**365
daydown = (1.0 - 0.01)**365
print("每天努力:{:.2f},每天放任:{:.2f}".format(dayup,daydown))
每天努力:37.78,每天放任:0.03
例3.2 一年365天,一周5个工作日,如果每个工作日都很努力,可以提高1‰,仅在周末放任一下,能力值下降1‰,一年下来能力值power为多少呢?(采用循环方式实现,假设第365天是周日,power初始值为1)
解:根据数学知识可知,如果第365天是周日,那么第一天也是周日。
根据题意用循环方式实现,已知工作日与周期日每7天一循环,天数与是否工作成周期函数,周期为7。此处采用for循环来实现。for i in range(365).星期、天数、i值等关系参见下表格。
| 星期 | 天数 | i值 | i%7的值 |
| 日 | 1 | 0 | 0 |
| 一 | 2 | 1 | 1 |
| ...... | ...... | ...... | ...... |
| 六 | 7 | 6 | 6 |
| 日 | 8 | 7 | 0 |
可见,休息日i%7值为0或6。由此代码如下:
power = 1
for i in range(365):
if i % 7 in [0,6]:
power = power * (1 - 0.01)
else:
power = power * (1 + 0.01)
print("每周向上5天向下2天的能力值:{:.2f}".format(power))
每周向上5天向下2天的能力值:4.63
例3.3 根据3.2条件,工作日需要努力到什么程度,一年后的水平才与每天都努力1%取得的效果相同呢?
解:将工作日努力的能力值提高数设为 x ,设置函数Power(x) ,当函数Power(x)的值不小于37.78时输出 x .
这里采用通过多次运算求解问题的解决方案,即程序从低到高逐渐增加每天努力的 x ,最后找到合适的 x
def Power(x):
power = 1.0
for i in range(365):
if i % 7 in [0,6]:
power = power * (1 - 0.01)
else:
power = power * (1 + x)
return power
x = 0.01
while (Power(x) < 37.78):
x += 0.01
print("每天努力的参数是:{:.3f}".format(x))
每天努力的参数是:0.020
博客参考《Python程序设计基础》高等教育出版社(第2版) 嵩天,礼欣,黄天羽著
推荐与上述教材配套的北京理工大学 嵩天,礼欣,黄天羽老师的MOOC
Python入门习题3.天天向上的更多相关文章
- Python入门习题4.文本进度条
例4.1.设置一组文本进度条,使之运行效果如下: --------执行开始--------% 0 [->**********]%10 [*->*********]%20 [**->* ...
- Python入门习题2.蟒蛇绘制(turtle库)
例2.调用turtle库中的若干函数来绘制蟒蛇,要求:(1)主体窗口宽650像素,高度350像素,窗口左侧与屏幕左侧像素距离200,窗口顶部与屏幕顶部像素距离200:(2)画笔落点在原点反向前进250 ...
- Python入门习题1.温度转换
这一节的课堂例题为: 例1.编写一个Python程序,完成摄氏度到华氏度,华氏度到摄氏度的温度转换. 解: (1)分析问题:利用程序实现温度转换,由用户输入温度值,程序给出输出结果. (2)划分边界: ...
- Python入门习题10.河内塔(汉诺塔)问题
例10 共n个圆盘,a,b,c三根柱子 #汉诺塔问题.py def Hanoi(n): #定义n阶汉诺塔问题移动次数函数 if n == 1: return 1 else: return 2*Hano ...
- Python入门习题9.数码管时间
#七段数码管.py import turtle,datetime def drawGap(): #绘制数码管间隔 turtle.penup() turtle.fd(5) def drawLine(dr ...
- Python入门习题8.羊车门问题
例8. 羊车门问题描述:有3扇关闭的门,一扇后停着汽车,另外两扇门后是山羊,主持人知道每扇门后是什么.参赛者首先选择一扇门.在开启它之前,主持人会从另外两扇门中打开一扇门,露出门后的山羊.此时,允许参 ...
- Python入门习题7.分别统计输入各类字符个数
例7.用户从键盘输入一行字符,编写一个程序,统计并输出其中的英文字符(包括中文字符).数字.空格和其他字符个数. #字符数统计.py Str = input('请输入一行字符:') alpha = 0 ...
- Python入门习题6.猜数游戏和其异常处理
例6:在程序中预设一个0~9之间的整数,让用户通过键盘输入所猜的数,如果大于预设的数,显示“遗憾,太大了”:小于预设的数,显示“遗憾,太小了”,如此循环,直至猜中数,显示”预测N次,猜中了”,其中N是 ...
- Python入门习题5.蒙特卡罗方法计算圆周率
#CalPi.py from random import random from math import sqrt from time import clock DARTS = 10000000 hi ...
随机推荐
- ReentrantReadWriteLock实现原理
在java并发包java.util.concurrent中,除了重入锁ReentrantLock外,读写锁ReentrantReadWriteLock也很常用.在实际开发场景中,在使用共享资源时,可能 ...
- postgres - 以单用户模式运行一个 PostgreSQL服务器
SYNOPSIS postgres [ -A 0 | 1] [ -B nbuffers] [ -c name=value] [ -d debug-level] [ --describe-config ...
- 如何在Linux下手动编译安装gcc
如果可以通过apt来安装的话,尽量不要手工编译了,手工编译是最后的选择.用apt安装,只需要输入一条命令: sudo apt-get install gcc 手工编译的话,gcc和其他软件包存在如下的 ...
- JS一些概念知识及参考链接
1.setTimeout.setInterval.promise.宏任务.微任务 先执行宏任务整体 script 同步代码,然后遇到 setTimeout 或者 setInterval 即放到宏任务队 ...
- Android解析编译之后的所有文件(so,dex,xml,arsc)格式
我们在之前一篇一篇介绍了如何解析Android中编译之后的所有文件格式,所有的工作都完成了,这里我们就来做个总结,我们为什么要做这些工作: 第一篇:解析so文件格式 点击进入 这里我们解析so文件,主 ...
- Python_006(is和==,小数据池)
一.is和==的区别 1.id()方法,可以查看一个变量的内存地址 lst = ["周杰伦", "燃哥"] lst1 = ["周杰伦", & ...
- MySQL系统服务的安装删除
1.从该地址http://dev.mysql.com/downloads/mysql/中选择windows的版本,选择下载. 2.将下载的压缩包解压. 3.将根目录下的my-default.ini复制 ...
- Jenkins slave-agent.jnlp运行无反应
在配置Jenkins的Windows节点时候,点击slave-agent.jnlp选择javaws.exe运行无反应,cmd命令执行javaws slave-agent.jnlp也不行,slave-a ...
- 整合ssm三大框架使用注解开发查询用户信息
整合ssm三大框架使用注解开发查询用户信息 一.基础知识准备之spring mvc工作原理 二.分析 第一步:发起请求到前端控制器(DispatcherServlet) 第二步:前端控制器请求Hand ...
- js 和jquery
1. js 全称 javascript 是 web客户端 运行的 解释性语言.. 2. jquery 只不过是 js 封装 简化了 ajax 和 dhtml 的 一款js 框架而已. 简单来说 Jqu ...