эффективный X в пределах лимита - PullRequest
0 голосов
/ 05 марта 2012

Я определяю пределы как limit(0)=0; limit(y)=2*1.08^(y-1), y∈{1,2,3,...,50} или, если вы предпочитаете итеративные функции:

limit(0)=0
limit(1)=2
limit(y)=limit(y-1)*1.08, x∈{2,3,4,...,50}

Exmples:

 limit(1) = 2*1.08^0 = 2
 limit(2) = 2*1.08^1 = 2.16
 limit(3) = 2*1.08^2 = 2.3328
 ...

для данного x∈[0,infinity) Я хочу, чтобы эффективная формула вычисляла y так, чтобы limit(y)>x and limit(y-1)≤x или 50, если их нет.

Есть идеи? или предварительный расчет 50 пределов и использование пары ifs лучшее решение?

Я использую erlang в качестве языка, но я думаю, что это не будет иметь большого значения.

1 Ответ

2 голосов
/ 05 марта 2012
limit(y) = 2 * 1.08^(y-1)
limit(y) > x >= limit(y - 1)

Теперь, если я не ошибся,

2 * 1.08^(y - 1) > x >= 2 * 1.08^(y - 2)
1.08^(y - 1) > x / 2 >= 1.08^(y - 2)
y - 1 > log[1.08](x / 2) >= y - 2
y + 1 > 2 + ln(x / 2) / ln(1.08) >= y

y <=  2 + ln(x / 2) / ln(1.08) < y + 1

Что дает вам

y = floor(2 + ln(x / 2) / ln(1.08))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...