2012-08-06 62 views
1

为了选择字体大小,我需要计算范围内的开始和结束之间的步骤。混合区间的数字范围

考虑:

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#。

+0

你能提供一个你正在尝试的代码示例吗? – MethodMan 2012-08-06 16:44:12

+0

你知道步骤的数量,需要的百分比还是你知道的百分比,需要的步骤? – 2012-08-06 16:49:07

+0

我有步骤但需要计算百分比。 – andleer 2012-08-06 17:24:03

回答

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; 
} 
+0

太棒了。看起来像“步骤”应该是“步骤-1”,但这是有效的。 百分比=((EndValue/StartValue)^(1/NumberOfSteps - 1)) - 1 – andleer 2012-08-06 17:03:16

0

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