如何用Python求出1?
聽過課的來做下筆記。有幾種思維,一種是像物理這種實證思維,一種是以數學為代表的數學思維,另外一種可能就是題主關注的以算為代表的計算思維了。
我希望能授之以漁,所以Follow my step。想想你平時是怎么求0~100的和的?
我能直接想到的方法是一個一個地加。1+2+3+...+100=?
那么用python寫就是這樣的:
比如說你要一個result的變量來存最后的運算結果,那必定是這樣:
result=1+2+3+4+5+6+7+8+...(我寫不下去了)+100
那一定不是一種明智的方法,因為計算機可以循環執行代碼段:
result=0
for i in range(1, 101):
result = result + i
print result
這個循環的意思就是每次從1-100的范圍中取出每個數,存入i中
然后每次把取出的i加到result里面。這樣一輪過后,result就被加了從0~100。這樣就可以了。
還有一種方法是運用了數學思維,就是等差數列的求和公式:首相加尾項的和乘以項數再除以2。
因此可以寫成
result = (1+100)*100/2
print(result)
這種就是數學思維。實際上計算機很擅長重復做一件事情。第二種寫法不能說不好,只是說他沒有發揮計算機的優勢。
所以遇到一個要用計算機解決的問題,思路就是想想如果你是計算機,你應該怎么做。這樣就能找到一個最容易理解的算法,然后去實現它。你就成功了。