計算機二級Python學習筆記(三):每天向上的力量

今天學習了Python的數字類型及操做,以前學C語言時,也有相似內容,因此今天這些內容,概念上比較好理解。函數

雖然知識點不難,但在過程當中,仍是有驚喜的。學習

在每天向上力量的實例中,我領略了兩個計算機思惟,以及一個單詞Grit。接下來仍是結合代碼,覆盤一下重點,以及上面提到的收穫。測試

每天向上,來自於毛爺爺的名言,好好學習,每天向上。spa

有人提出,若是天天進步1%,一年後能夠提高多少?反之若是天天退步1%,一年後會退步多少?code

這個問題在數學上很簡單,就是1.01的365次方和0.99的365次方。在不少企業牆上,也見過相似的公式,前者的答案是37.78,後者的答案是0.03。強烈的對比能夠看出,天天持續進步的力量很是大。orm

用Python計算也很簡單,只須要用上基礎的冪運算就能夠。blog

接着老師在這個問題基礎上觸類旁通,升級爲複雜點的問題,以便講解更多知識點。get

一年365天,若是5天的工做日,天天進步1%,2天的休息日,天天退步1%,這種工做日向上的力量如何呢?數學

看上去複雜一些了,無法用簡單的公式去計算。事實上若是硬要找規律,總結出一個數學公式,也是能夠找到的。it

但老師指出,這樣作就是典型的數學思惟,問題的解決大部分仍是靠的人腦,計算機只是最後用來輔助計算。而用計算機解決問題,能夠用一種計算思惟的方式,先將問題抽象,抽象出問題的形式化邏輯,再進行自動化,將抽象的結果,經過程序自動完成,就能夠很快的獲得結果。

按照這種思惟,解決這個問題的代碼以下:

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))

其中for i in range(365):表明的是將i遍歷365天,循環模擬365天這個過程。

而if i % 7 in [6,0]:表明i對7求餘的時候,判斷是否有餘數爲6和0的,若是有,顯然就是休息日。餘數若是不是這兩個,就表明是工做日,分別計算便可。

計算的結果,工做日的力量爲4.63,比起天天進步仍是差了很多。

在每天向上問題進一步升級中,問題變成了有2我的,A天天進步1%,B休息日天天退步1%,問在工做日要進步到什麼程度,才能遇上A的水平?

和前面提到的同樣,若是用一種複雜的數學公式計算,固然也能夠獲得最後的答案,但不是咱們利用計算機解決問題最好的方式。

計算機有一個很大的優點,就是計算能力超強,一些須要大規模計算的笨方法,在數學角度上不是最優的,但在計算機這裏卻很是實用。

上面的問題,就能夠用不斷試錯的方式。給B一個進步的初始值,算出結果後和A比較,若是趕不上A,就加一點點,直到遇上A爲止。

這樣的計算量,若是手動去算,要算到天昏地暗,幾乎是行不通的。而對於計算機來講,只要一瞬間就能夠獲得答案。這就是用計算機解決問題時,笨辦法試錯思惟方式的優點。

實現的代碼以下:

def dayUP(df):
    dayup = 1
    for i in range(365):
        if i % 7 in [6,0]:
            dayup = dayup*(1.0-0.01)
        else:
            dayup = dayup*(1.0+df)
    return dayup
dayfactor = 0.01
while dayUP(dayfactor)<37.78:
    dayfactor += 0.001
print("工做日的努力參數是: {:.3f}".format(dayfactor))

其中保留字def是用來定義函數,df是參數,是dayfactor的簡寫,也就是不斷測試的B的工做日進步程度。

while是用來判斷條件成立是循環執行,也就是B的最終結果不小於37.78時,才結束計算。

dayfactor += 0.001這句代碼的含義,和dayfactor=dayfactor+0.001相同,只是爲了代碼更簡潔。

最終的結果是0.019,也就是工做日天天進步1.9%,和天天進步1%的效果是同樣。

 

上面的計算結果,仍是給我不少思考的。我此時的行爲,也能勉強算上是在學習進步。但在這學習的過程當中,頻次不算很高。我一度認爲,只要總的學習時間夠了,學習最終就會有想要的結果的。

但其實不對的,正所謂學如逆水行舟,不進則退,偶爾前進一些,再偶爾退後一些,晃晃悠悠,其實都在原地徘徊。

咱們常說要刻意練習,其實更須要高頻次的刻意練習。

相關文章
相關標籤/搜索