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 ...
随机推荐
- latex算法步骤如何去掉序号
想去掉latex算法步骤前面的序号,如下 我想去掉每个算法步骤前面的数字序号,1,2,3,因为我已经写了step.我们只需要引用a lgorithmic这个包就可以了,代码如下: \usepackag ...
- vue防抖节流函数---组件封装,防止按钮多次点击
1.vue 封装utils.js /** * @param {function} func 执行函数 * @param {number} time 防抖节流时间 * @param {boolean} ...
- "不能将值 NULL 插入列 'ID',表 列不允许有 Null 值."
问题: "不能将值 NULL 插入列 'ID',表 列不允许有 Null 值." 原因: 在进行表创建的时候没有将主键自增字段添加标识. 在使用navicat进行表创建的时候一定要 ...
- hdu4417 Super Mario (树状数组/分块/主席树)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4417 题目大意:给定一个长度为n的序列,有m个询问,每次询问包含l,r,h,即询问区间[l,r]小于等 ...
- man VGCREATE
VGCREATE(8) VGCREATE(8) NAME/名称 vgcreat ...
- sonar-runner命令模式运行sonar
适用环境:该种配置的模式适用于本地调试模式 前提条件:在工程路径下创建sonar-project.properties文件 该客户端的路径在系统配置文件中进行了定义 alias sonar-runne ...
- DELPHI FMX 同时使用LONGTAP和TAP
在应用到管理图标时,如长按显示删除标志,单击取消删除标志.在FMX的手势管理中,只有长按LONGTAP,点击TAP则是单独的事件,不能在同事件中管理.在执行LONGTAP后,TAP也会被触发,解决方 ...
- linux运维、架构之路-keepalived高可用
一.Keepalived介绍 Keepalived起初是专为LVS负载均衡软件设计的,用来管理并监控LVS集群系统中各个服务节点的状态,后来又加入了可以实现高可用的VRRP功能,Ke ...
- Android逆向之旅---解析编译之后的AndroidManifest文件格式
一.前言 今天又是周六了,闲来无事,只能写文章了呀,今天我们继续来看逆向的相关知识,我们今天来介绍一下Android中的AndroidManifest文件格式的内容,有的同学可能好奇了,Android ...
- Java WebService服务
其中cxf框架 http://cxf.apache.org/ Apache CXF™: An Open-Source Services Framework Overview Apache CXF™ i ...