具有复合间隔的数字范围

时间:2012-08-06 16:40:23

标签: c# math gdi+

为了调整字体大小,我需要在一个范围内计算开始和结束之间的步骤。

假设:

Start Value: 14.0,
End Value: 250.0,
Steps: 28

Resulting Values: 14.0, 15.5, 17.1, 18.9, ... 204.9, 226.3, 250.0

我通过将10.45%添加到上一个值(基于试验和错误)来计算每个值,但如何计算此百分比?
猜测这里可以使用一些复合兴趣类型函数 公式或伪代码很好。

最终,这将是一个C#。

2 个答案:

答案 0 :(得分:3)

EndValue = StartValue * ( ( 1 + Percentage ) ^ NumberOfSteps )

是您需要的基本公式。

如果您知道NumberOfSteps并且想要Percentage,那么一些代数会为您提供公式(伪代码,^是指数运算符):

EndValue / StartValue = ( 1 + Percentage ) ^ NumberOfSteps
(EndValue / StartValue) ^ (1 / NumberOfSteps) = 1 + Percentage
Percentage = ( (EndValue / StartValue) ^ (1 / NumberOfSteps) ) - 1

如果您知道Percentage并且想要NumberOfSteps,那么您最好使用循环

int NumberOfSteps = 0;
for(double i = StartValue; i < EndValue; i *= (1 + Percentage))
{
    ++NumberOfSteps;
}

答案 1 :(得分:0)

Ce ^(kt)是数学中的复合利率。其中C是初始量,e是常数e = 2.71828 ....它就像pi; k是百分比,t是时间。如果你想要百分比,那么用Ce ^(kt)向后工作以获得K值。