python:天天向上的力量
程序员文章站
2022-05-18 08:08:20
...
最近在看python程序设计,看到“天天向上的力量”这一节感觉还挺有意思,打算做个笔记。把其中的精髓整理出来。
最后一个问题:一个人,一年365天,每天进步1%,不停歇,另一人,一年365天,每周工作5天,周末休息2天,休息日下降1%,要多努力才能与第一个人进步得一样?
以下是一个人365天每天都进步1%,一年下来结果
dayfactor = 0.01
dayup = pow(1+dayfactor,365)
print("天天向上:{:.2f}".format(dayup))
结果为37.78
那么接下来就可以写完整的代码了,自定义一个函数,初始值dayfactor为0.01,dayfactor 0.001向上加,直到能追赶上37.78,然后跳出输出当前的dayfactor值
def dayUP(df):
dayup = 1.0
for i in range(365):
if i % 7 in [6, 0]:
dayup = (1-0.01) * dayup
else:
dayup = (1+df) * dayup
return dayup
dayfactor = 0.01
while dayUP(dayfactor)<37.78:
dayfactor += 0.001
print("工作日的努力参数是{:.3f}".format(dayfactor))
最后dayfactor为0.019,也就是说,如果一个人一年每天都在进步1%,那么每周周末休息的人,如果还退步,那么平常工作日就要付出两倍的努力。
那么接下来我们延申一下,如果周末休息,但是不进步也不下降,那么,平常工作日需要进步多少,才能与每天都在进步的持平。代码稍微改动如下:
def dayUP(df):
dayup = 1.0
for i in range(365):
if i % 7 in [6, 0]:
dayup = 1 * dayup
else:
dayup = (1+df) * dayup
return dayup
dayfactor = 0.01
while dayUP(dayfactor)<37.78:
dayfactor += 0.001
print("工作日的努力参数是{:.3f}".format(dayfactor))
运行结果为0.015,也就是说,一周只进步五天的人,要比每天都进步的人多付出一半的努力,才能赶上每天都在进步的人。