Python編程求解第1天1分錢之後每天兩倍持續一個月的等比數列問題

一、問題

  • 問題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函數結合等比數列通項和求和公式。大家可以參考學習一下博主寫的代碼。

  1. 使用while循環方式
    1.1 直接看代碼和相關注釋:

    '''
    作者:zhang502219048
    代碼來源://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 代碼運行結果:

  2. 使用power函數和等比數列通項和求和公式
    2.1 先來看看等比數列通項公式和求和公式是怎樣的,學習一下:

    2.2 直接看代碼和相關注釋:

    '''
    作者:zhang502219048
    代碼來源://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元(一千多萬)!

五、問題擴展

  • 等比數列產生的背景故事——棋盤放麥粒,具體大家可以直接查看百度百科,這裡就不再詳述。

六、作者聲明

Tags: