Как добиться экспоненциального роста в циклическом Python?

#python #percentage #addition #exponential

#питон #процент #дополнение #экспонентный

Вопрос:

Мне было интересно, может ли кто-нибудь помочь мне понять, как делать процентное сложение в 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 раз и распечатать за один раз.

Комментарии:

1. Пожалуйста, предоставьте нам код , который вы сделали до сих пор, чтобы мы могли вам помочь, без кода мы не сможем вам помочь.

2. Можете ли вы сосредоточиться и прояснить свой вопрос по конкретной проблеме? Вы сталкиваетесь с трудностями при расчете новой стоимости? У вас возникли проблемы с выполнением этого в цикле? Как бы вы это сделали, если бы вам пришлось делать это с помощью ручки и бумаги? Оттуда переход на Python действительно прост с базовыми циклами

3. Я имею в виду, знаете ли вы, как добавить 3% к числу, за пределами Python?

Ответ №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))  

Он вернет массив из первых 20 значений функции expo_generator.

Ответ №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