繁体   English   中英

如何在 Python 循环中做指数增长?

[英]How to do exponential growth in Python looped?

我想知道是否有人可以帮助我弄清楚如何在 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 次并在一个 go 中打印。

我会做的是:

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

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 function 的前 20 个值的数组。

基本上有两种方法可以做到:

  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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM