Python程式設計求解第1天1分錢之後每天兩倍持續一個月的等比數列問題
阿新 • • 發佈:2020-05-03
一、問題
-
問題1
場景:如果你未來的丈母孃要求你,第1天給她1分錢,第2天給2分錢,第3天給4分錢,以此類推,每天給前一天的2倍,給1個月(按30天)算就行。
問:第30天給多少錢,總共給多少錢?
-
問題2
場景:如果有兩份工作。
第1份:第1天給你1分錢,第2天給你2分錢,第3天給你4分錢,以此類推,每天給前一天的2倍,給1個月(按30天)。
第2份:一個月給你10萬工資。
問:哪份工資高?給你選擇的話,你要第1份還是第2份?
二、相關熱搜關鍵詞
- 1天1分錢翻倍累計到三十天後多少錢
- 1天1分錢第二天乘2
- 1天1分錢每天翻2倍30天一共多少錢
- 1天1分錢2天2分錢3天4分錢
- 1天1分錢2天2分錢,以2倍的倍數,一個月多少錢?
- 0.01每天翻倍30天是多少
- 0.01每天翻倍月底多少錢
- 0.01每天翻一倍
三、解題方法
問題1和問題2,其實計算是一樣的,在這裡博主為大家介紹兩種不同的解題方法,分別為:通過while迴圈方式、pow函式結合等比數列通項和求和公式。大家可以參考學習一下博主寫的程式碼。
-
使用while迴圈方式
1.1 直接看程式碼和相關注釋:''' 作者:zhang502219048 程式碼來源:https://www.cnblogs.com/zhang502219048/p/12822913.html 功能:通過Python的while迴圈實現計算1分錢翻倍1個月的問題 變數說明:a為每天多少錢,初始為第1天0.01元 total為截至當天總共多少錢 q為每天翻多少倍 n為第幾天,而且是從第2天開始,因為是第2天才開始翻倍 nMax為最後翻倍的那天 ''' a, total, q, n, nMax = 0.01, 0, 2, 2, 30 # while迴圈,計算到第30天,當天多少錢和截至當天總共多少錢 while n <= nMax: # 從第2天開始進行迴圈,直到第30天 a = a * q # 計算當天多少錢 total += a # 計算截至當天總共多少錢 n += 1 # 迴圈變數n加1天 else: print('第30天多少錢:', a) print('第1到30天總共多少錢:', total)
1.2 程式碼執行結果:
-
使用power函式和等比數列通項和求和公式
2.1 先來看看等比數列通項公式和求和公式是怎樣的,學習一下:
2.2 直接看程式碼和相關注釋:''' 作者:zhang502219048 程式碼來源:https://www.cnblogs.com/zhang502219048/p/12822913.html 功能:通過Python的pow函式和等比數列通項和求和公式實現計算1分錢翻倍1個月的問題 變數說明:a1為第1天0.01元 a30為第30天多少錢 total為截至當天總共多少錢 q為每天翻多少倍 n為總共幾天 ''' a1, q, n = 0.01, 2, 30 # 使用pow函式結合等比數列通項公式,計算第30天多少錢 a30 = a1 * pow(q, n-1) # pow(q, n - 1):使用pow函式計算q的n - 1次方 # 使用等比數列求和公式,計算截至第30天總共多少錢 total = (a1 - a30 * q) / (1 - q) print('第30天多少錢:', a30) print('第1到30天總共多少錢:', total)
2.3 程式碼執行結果:
四、問題結論
- 第30天給5,368,709.12元(五百多萬)!
- 截至第30天總共給10,737,418.23元(一千多萬)!
五、問題擴充套件
- 等比數列產生的背景故事——棋盤放麥粒,具體大家可以直接檢視百度百科,這裡就不再詳述。
六、作者宣告
- 歡迎轉載,但轉載請務必註明博文來源:
- https://www.cnblogs.com/zhang502219048/p/12822913.html (Python版)
- https://www.cnblogs.com/zhang502219048/p/11273639.html (sql server版)