【发布时间】:2016-09-21 23:40:47
【问题描述】:
我使用辛普森法则来近似 pi 的值。现在我想确定我计算的近似值与 pi 的实际值之间有多少位相同。
这是我近似 pi 值的方法:
function simpson(f, n, a, b) {
var h = (b - a) / n;
var sum = f(a) + f(b);
for (var i = 1; i <= n; i += 2)
sum += 4 * f(a + i * h);
for(var i = 2; i <= n - 1; i += 2)
sum += 2 * f(a + i * h);
return h * sum / 3.0;
}
【问题讨论】:
-
请选择一种语言,除非您需要与语言无关的算法。
-
您可以
XOR相同的两位和位归零。困难,从你的两个值制作定点数。我是否可以建议查看 pi 与您的近似值之间差异的 log base 2。整数部分将是与二进制点(类似于小数点)相差的位数。float bits = log( pi - approximation)/log(2); -
我假设“pi 的实际值”是指“在特定浮点表示中最接近的 pi”。
-
想一想你最好做那个
log( abs( pi - approximation )/ log( 2 );
标签: javascript java c# c++ algorithm