【问题标题】:How to do exponential growth in Python looped?如何在 Python 循环中做指数增长?
【发布时间】:2022-01-06 05:19:20
【问题描述】:

我想知道是否有人可以帮助我弄清楚如何在 Python 中进行百分比加法?我想将指数百分比增长添加到给定的数字,即 3% 添加到 150 = 154.5,然后添加 3% 到新值,但在连续字符串中 x 次。

像这样:

1.) 150
2.) 154.5
3.) 159.135
4.) 163.90905
5.) 168.8263215
6.) 173.891111145
7.) 179.10784447935
8.) 184.4810798137305
9.) 190.0155122081424
10.) 195.7159775743867

希望能够一次性完成 200 次打印。

【问题讨论】:

  • 请提供您目前制作的代码,以便我们为您提供帮助,没有代码我们无法帮助您。
  • 你能把你的问题集中在确切的问题上吗?您是否在计算新值时遇到困难?你在循环中遇到问题吗?如果你必须用笔和纸来做这件事,你会怎么做?从那里过渡到 Python 是非常简单的基本循环
  • 我的意思是,你知道如何在 Python 之外给一个数字加上 3% 吗?

标签: python percentage addition exponential


【解决方案1】:

我会做的是:

创建一个用于计算指数百分比的生成器:

def expo_generator(x):
    while True:
        yield x
        x = x + x*3/100

创建一个take 实用程序(它需要生成器或数组的n 个元素)。 (这个工具也可以在 more-itertools 包中找到)

from itertools import islice
def take(n, iterable):
    return list(islice(iterable, n)

那么你可以使用:

result = take(20, expo_generator(150))

它将返回 expo_generator 函数的前 20 个值组成的数组。

【讨论】:

    【解决方案2】:

    基本上有两种方法:

    1. 在循环中使用 x:
    x = 150
    for n in range(200):
        x *= 1.03  # multiplying by 103%, therefore "adding 3%"
        print(x)
    
    1. 数学方式:
    x = 150
    for n in range(200):
        print(x * (1.03**n))  # a**b means a^b, exponetial function
    

    【讨论】:

      猜你喜欢
      • 2015-11-17
      • 2022-06-13
      • 1970-01-01
      • 1970-01-01
      • 2015-02-12
      • 1970-01-01
      • 1970-01-01
      • 2013-10-05
      • 1970-01-01
      相关资源
      最近更新 更多