• 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
      代码来源: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 代码运行结果:

    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元(一千多万)!

    五、问题扩展

    • 等比数列产生的背景故事——棋盘放麦粒,具体大家可以直接查看百度百科,这里就不再详述。

    六、作者声明

  • 相关阅读:
    【shell】sed指定追加模式空间的次数
    【shell】sed后向引用替换文本
    【c++】一道关于继承和析构的笔试题
    【curl】cookie的分隔符
    【shell】grep使用正则表达式
    【leetcode】Remove Duplicates from Sorted Array
    【shell】awk格式对齐文本
    【shell】sed处理多行合并
    【leetcode】Permutations
    BWSAP BW Performance Tuning URLS LIST
  • 原文地址:https://www.cnblogs.com/zhang502219048/p/12822913.html
Copyright © 2020-2023  润新知