我需要使用該公式來計算PI與預定義的精度:計算PI使用逆平方和
所以我結束了這個解決方案。
private static double CalculatePIWithPrecision(int presicion)
{
if (presicion == 0)
{
return PI_ZERO_PRECISION;
}
double sum = 0;
double numberOfSumElements = Math.Pow(10, presicion + 2);
for (double i = 1; i < numberOfSumElements; i++)
{
sum += 1/(i * i);
}
double pi = Math.Sqrt(sum * 6);
return pi;
}
所以這個工作正確,但我面臨的問題與效率。它的速度非常慢,精度值爲8或更高。
是否有更好(更快!)的方式來計算PI使用該公式?
如果只執行一次,是否真的如此慢以至於有問題? – 2014-09-28 12:34:50
你是否想要計算一下你正在做的一些運動? 'Math.PI'返回3.14159265358979323846,然後您可以截取或舍入您想要的小數位數...... – 2014-09-28 12:37:39
嘗試在'for'語句中使用'int'。我懷疑在那裏使用雙重減慢你的速度。 – Sopuli 2014-09-28 12:37:52