image.png

    一年365天,每天进步1%,累计进步多少呢?
    一年365天,每天退步1%,累计退步多少呢?
    这个问题如果转化为数学问题是很简单的,用Python写的话更简单和轻松。
    我们先以千分之一为例,保留2位小数,建立第一个代码。

    1. #DayDayUpQ1.py
    2. dayup = pow(1.001, 365)
    3. daydown = pow(0.999, 365)
    4. print("向上:{:.2f},向下:{:.2f}".format(dayup, daydown))

    输出为:
    dayup= 1.44
    daydown=0.69
    可以看到,千分之一的话,得到的这个结果,还是很符合正常人的思维的。也是大多数努力的人每一年的正常努力的成果。

    如果我们想把这个每天的进步空间修改一下,一直在pow函数后面一直不断修改就显得繁琐,这个时候我们可以另加一个变量,直接进行变量的修改就好了。

    1. #DayDayUpQ2.py
    2. dayfactor = 0.005
    3. dayup = pow(1+dayfactor, 365)
    4. daydown = pow(1-dayfactor, 365)
    5. print("向上:{:.2f},向下:{:.2f}".format(dayup, daydown))

    以看到我们在修改后的函数里面把每天的进步值改成了千分之五,得到的结果是
    dayup =6.17, daydown =0.16
    可以看到,相比于千分之一,有了一个质变,不过每天进步千分之五,对你能够完成嘛?
    我们再把dayfactor改成0.01,猜猜结果是什么???
    dayup =37.78,是不是一个很惊人的数字?(计算肯定是没问题的)

    如果我们把时间拉长,从一年的365天改成两年的730天,再猜猜结果是什么?
    答案是
    dayup=1427.59
    确实难以置信,但确实是正确的

    下一个问题
    但是我们平常的生活中通常是不会每天都在工作,每天都有进步的,比如我们通常会在工作日的时候学习,在周末的时候双休。这个时候可能工作的时候保持每天1%的进步,休息的时候会有1%的退步,这个时候怎么计算一年后的收益呢?

    1. #DayDayUpQ3.py
    2. dayup = 1.0
    3. dayfactor = 0.01
    4. for i in range(365):
    5. if i % 7 in [6,0]:
    6. dayup = dayup*(1-dayfactor)
    7. else:
    8. dayup = dayup*(1+dayfactor)
    9. print("工作日的力量:{:.2f} ".format(dayup))

    我们把代码运行一下,看下结果是
    4.63
    依然有很大的进步,足足4倍多啊,但是比起每天都进步1%的37倍,是不是就差了很多呢?这是持续的力量

    最后一个问题:
    如果有两个人A和B,A保持每天1%的进步(包括周末),而B周末选择休息(周末退步1%),B需要工作日的时候进步多少才能保持与A同步呢?
    考虑到数据量并不大,我们采用暴力穷举的方式来得到结果,来看程序

    1. #DayDayUpQ4.py
    2. def dayUP(df):
    3. dayup = 1
    4. for i in range(365):
    5. if i % 7 in [6,0]:
    6. dayup = dayup*(1 - 0.01)
    7. else:
    8. dayup = dayup*(1 + df)
    9. return dayup
    10. dayfactor = 0.01
    11. while dayUP(dayfactor) < 37.78:
    12. dayfactor += 0.001
    13. print("工作日的努力参数是:{:.3f} ".format(dayfactor))

    这里对于初学者可能会有点困惑,简单解释一下:主要看def-while的框架,这一Python的主要形式,def设计函数(注意加:),df为传参,while给定初始值,然后不断增加千分之一,知道达到A的效果为止
    运行结果是 0.019,也就是说,B需要在工作日的时候付出双倍的努力,才能休息,不知道这个时候i会不会想,那不如在周末的时候也付出1%的努力呢?
    但是反过来想想,我们以双倍的努力(0.019)在周末也这么做,一年后的结果是多少,结果是pow(0.019,365)=962.89!!!!
    这取决于你的选择,但请牢记天天向上的力量!
    ————————————————
    原文链接:https://blog.csdn.net/weixin_43943977/article/details/102099476