public static double sqrt(double c)
{
if (c < 0) return Double.NaN;
double t = c; // line 1
double err = 1e-15; // line 2
while (Math.abs(t - c/t) > err * t) // line 3
t = (c/t + t) / 2.0; // line 4
return t;
}
Q1: Меня смущает переменная t в строке 1 и строке 4: поскольку t = c, то c/t = 1, что означает строка 4?
Q2: В строке 3, какова цель проверки?
Я искал "метод Ньютона" и получил несколько объяснений, но так и не смог понять. Могу ли я запросить прямое объяснение здесь?