0
所以我試圖用Newton-Raphson方法來查找BigInteger的平方根。如何使用Newton-Raphson方法在C中查找BigInteger的平方根#
這裏是我的代碼:
private void sqrRt(BigInteger candidate)
{
BigInteger epsilon = new BigInteger(0.0001);
BigInteger guess = candidate/2;
while (BigInteger.Abs(guess * guess - candidate) >= epsilon)
{
// guess = guess - (((guess**2) - y)/(2*guess))
guess = BigInteger.Subtract(guess, BigInteger.Divide(BigInteger.Subtract(BigInteger.Multiply(guess, guess), candidate), BigInteger.Multiply(2, guess)));
MessageBox.Show(Convert.ToString(guess));
}
}
這個問題似乎是該BigInteger的不夠精確墜入while循環的小量的準確度之內 - 即它需要一個小數位。我的問題是什麼/如何/我在哪裏轉換爲雙重使while循環最終返回false?
ummm'BigInteger'用於整數,而不是浮點數學。 –
[計算BigInteger(System.Numerics.BigInteger)的平方根]可能的重複(http://stackoverflow.com/questions/3432412/calculate-square-root-of-a-biginteger-system-numerics-biginteger) – AlexH
那麼如何在非常大的數字上進行浮點數學呢? – Gerald