如何在java / groovy中进行此计算?

时间:2012-04-11 19:04:14

标签: java algorithm math groovy

我想要一个可以执行以下计算并返回结果的函数。我不确定 e 在此统计公式中的含义。我不知道如何将该公式转换为java代码...这就是问题...特别是e power points .... points是一个变量,我将作为函数arg传入

enter image description here

这不是作业。

3 个答案:

答案 0 :(得分:5)

正如Corbin所说,您可以在Java中找到java.lang.Math.E Math.exp(Double d)

但您可能想使用 ePoints = Math.exp(Points); finalScore = 1000 * (ePoints/(1 + ePoints)) - 10; 方法。

您的计算是:

 ePoints = Math.exp(Points);
 finalScore = (1000 * ePoints)/(1 + ePoints) - 10;

使用以下方法可以获得更高的精度,但更高的溢出风险:

{{1}}

答案 1 :(得分:2)

e是常数。其值为2.71828...

请参阅e math constant

答案 2 :(得分:2)

我不知道这是否是一个已知的公式(可能是一个科学的包装),但这似乎有效:

import static Math.pow

def finalScore(points) {
    def e = Math.E
    1000 * pow(e, points) / (1 + pow(e, points)) - 10
}

// lim when points -> 0 of finalScore(points) == 490
assert finalScore(0) == 490

// lim when points -> ∞ of finalScore(points) == 990
assert Math.abs(finalScore(50) - 990) < 0.001