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