python自学笔记--天天向上的力量

我们可能都曾听过一个励志的东西。

1%,也就是0.01.看起来是很小的一个数字。
然而,1.01的365次方等于37.78.。也就是说,如果你每天进步一小点,坚持一年下来,你会比最开始的自己强37倍。
反之,0.99的365次方等于0.026。如果你每天退步看起来微不足道的一点。一年累计下来,你甚至比最开始的自己还要差很多。



最近在学习python的时候,我再次遇到了这个问题。老师称为“天天向上的力量”

问题如下:

A君每天在基数1上努力进步1%,一年的进步为37.78。B君在工作日也是努力进步,但周末休息的时候,会退步1%。
问:B君工作日应该进步多少才可以和A君365天的成果相同。

这个题我用到了python求解,具体代码如下

def dayUP(df):
    dayup = 1
    for i in range(365):
        if i % 7 in [6,0]:
            dayup = dayup*(1-0.01)
        else:
            dayup = dayup*(1+df)
    return dayup

dayfactor = 0.01

while dayUP(dayfactor) < 37.78:
    dayfactor = dayfactor + 0.001
print("B工作日的工作量应该为{:.3f}".format(dayfactor))

运行结果为:

B工作日的工作量应该为0.019

抛开代码。只看待这个问题。同样每天都在学习,但是B君周末去休息,A君还是照常学习。为了达到A君的水平,B君甚至要付出A君近双倍的努力才可。
那如果B君开始悔改,周末也照常学习。B君坚持一年下来可以达到如下水平。

y=pow(1+0.019,365)
结果为:962.891

结果很惊人。

如上题目中,假设周末B君是退步1%。但是现实中不一定会退步这么多。所以这个问题还有个变形,就是:其他条件不变,周末也不退步也不进步。求一年后的结果
代码修改如下:(为了后续方便,此处只修改了周末的值)

def dayUP(df):
    dayup = 1
    for i in range(365):
        if i % 7 in [6,0]:
            dayup = dayup*(1-0.0)
        else:
            dayup = dayup*(1+df)
    return dayup
dayfactor = 0.01

while dayUP(dayfactor) < 37.78:
    dayfactor = dayfactor + 0.001
print("工作日的工作量应该为{:.3f}".format(dayfactor))


运行结果为:工作日的工作量应该为0.015

在周末照常休息的情况下,B君工作日需要每天进步0.015才可以达到和A君相同的效果。
也就是说,如果周末休息,B君工作日需要付出A君的1.5倍,才能取得和他一样的成就。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值