在java中编写方法时,我注意到这两个函数返回相同的值。
// Riemann-Siegel theta function using the approximation by the Stirling series
public static double theta (double t) {
return (t/2.0 * StrictMath.log(t/2.0/StrictMath.PI) - t/2.0
- StrictMath.PI/8.0 + 1.0/48.0/t + 7.0/5760.0/t/t/t);
}
// Riemann-Siegel theta function using the approximation by the Stirling series
public static double theta2 (double t) {
return (t/2.0 * Math.log(t/(2.0*Math.PI)) - t/2.0
- Math.PI/8.0 + 1.0/(48.0*Math.pow(t, 1)) + 7.0/(5760*Math.pow(t, 3)));
}
什么是
7.0/5760.0/t/t/t
在做什么?为什么这与7.0 /(5760 * t ^ 3)相同?
答案 0 :(得分:0)
表达式7.0 / 5760.0 / t1 / t2 / t3将从L-R计算。 像 -
r=(7.0/5760.0)
r1=(result/t1)
r2=(r1/t2)
r3=(r2/t3)
和r3是你的最终结果
如果你有像8/2*2*2
这样的表达式,它将按照我之前解释的相同计算,但在8/2*(2*2)
表达式(2*2)
中将首先计算,因为perathesis具有更高的优先级,然后{{1 }}。
在/
函数的情况下它也是适用的,因为函数也具有较高的运算符优先级。