017 示例3-每天向上的力量

1、"每天向上的力量"問題分析

1.1 每天向上的力量

基本問題:持續的價值函數

  • 一年365天,天天進步1%,累計進步多少呢?
    • \(1.01^{365}\)
  • 一年365天,天天退步1%,累計剩下多少呢?
    • \(0.99^{365}\)

1.2 需求分析

  • 數學公式能夠求解,彷佛不必用程序
  • 若是是"三天打魚兩天曬網"呢?
  • 若是是"雙休日又不退步"呢?

2、"每天向上的力量"第一問

2.1 問題1: 1‰的力量

  • 一年365天,天天進步1%,累計進步多少呢?
    • \(1.01^{365}\)
  • 一年365天,天天退步1%,累計剩下多少呢?
    • \(0.99^{365}\)
# DayDayUpQ1.py

dayup = pow(1.001, 365)  # 1.44
daydown = pow(0.999, 365)  # 0.69
print("向上:{:.2f},向下:{:.2f}".format(dayup, daydown))
# 向上:1.44,向下:0.69

1‰的力量,接近2倍,不可小覷哦spa

3、"每天向上的力量"第二問

3.1 問題2: 5‰和1%的力量

  • 一年365天,天天進步1%,累計進步多少呢?
    • \(1.005^{365}\)\(1.01^{365}\)
  • 一年365天,天天退步1%,累計剩下多少呢?
    • \(0.995^{365}\)\(0.99^{365}\)

3.1.1 5‰

# DayDayUpQ2.py

dayfactor = 0.005 # 使用變量的好處:一處修改便可
dayup = pow(1+dayfactor, 365)  # 向上:6.17
daydown = pow(1-dayfactor, 365)  # 向下:0.16
print("向上:{:.2f},向下:{:.2f}".format(dayup, daydown))

5‰的力量,驚訝!code

3.1.2 1%

# DayDayUpQ2.py

dayfactor = 0.01 # 使用變量的好處:一處修改便可
dayup = pow(1+dayfactor, 365)  # 向上:37.78
daydown = pow(1-dayfactor, 365)  # 向下:0.03
print("向上:{:.2f},向下:{:.2f}".format(dayup, daydown))

1%的力量,驚人!orm

4、"每天向上的力量"第三問

4.1 問題3: 工做日的力量

  • 一年365天,一週5個工做日,天天進步1%
  • 一年365天,一週2個休息日,天天退步1%
  • 這種工做日的力量,如何呢?

1.01365 (數學思惟)--》for..in.. (計算思惟)blog

採用循環模擬365天的過程:抽象 + 自動化數學

# DayDayUpQ3.py

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

1.001365 = 1.44,1.005365 = 6.17,1.01365 = 37.78 --》 儘管提升1%,但介於1‰和5‰的力量之間it

5、"每天向上的力量"第四問

5.1 問題4: 工做日的努力

  • 工做日模式要努力到什麼水平,才能與天天努力1%同樣?
  • A君: 一年365天,天天進步1%,不停歇
  • B君: 一年365天,每週工做5天休息2天,休息日降低1%,要多努力呢?

for..in.. (計算思惟) --》 def..while.. ("笨辦法"試錯)自動化

017-示例3-每天向上的力量-01.jpg?x-oss-process=style/watermark

# DayDayUpQ4.py


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 += 0.001
print("工做日的努力參數是:{:.3f} ".format(dayfactor))  # 工做日的努力參數是:0.019

根據df參數計算工做日力量的函數io

參數不一樣,這段代碼可共用

def保留字用於定義函數

while保留字判斷條件是否成立

條件成立時循環執行

\(1.01^{365} = 37.78\)\(1.019^{365} = 962.89\)

工做日模式,天天要努力到1.9%,至關於365模式天天1%的一倍!

5.2 GRIT

GRIT:perseverance and passion for long-term goals

  • GRIT,堅毅,對長期目標的持續激情及持久耐力
  • GRIT是得到成功最重要的因素之一,牢記每天向上的力量

6、"每天向上的力量"觸類旁通

  • 實例雖然僅包含8-12行代碼,但包含不少語法元素
  • 判斷條件循環、次數循環、分支、函數、計算思惟
  • 清楚理解這些代碼可以快速入門Python語言

6.1 問題的變化和擴展

  • 工做日模式中,若是休息日不降低呢?
  • 若是努力天天提升1%,休息時天天降低1‰呢?
  • 若是工做3天休息1天呢?

  • "三天打魚,兩天曬網"呢?
  • "多一份努力"呢? (努力比降低多一點兒)
  • "多一點懈怠"呢?(降低比努力多一點兒)

相關文章
相關標籤/搜索