Добрый день, коллеги!
Представляем Вам очередное задание для самостоятельной работы по курсу "Алгоритмы и структуры данных".
Имеется реализация алгоритма вычисления квадратного корня с использованием итерационной формулы Герона на С#.
Ввод: вещественное число x; вещественное число Epsilon, задающее точность вычислений.
Вывод: квадратный корень из x с точностью Epsilon.
double SquareRoot(double x, double Epsilon)
Представляем Вам очередное задание для самостоятельной работы по курсу "Алгоритмы и структуры данных".
Имеется реализация алгоритма вычисления квадратного корня с использованием итерационной формулы Герона на С#.
Ввод: вещественное число x; вещественное число Epsilon, задающее точность вычислений.
Вывод: квадратный корень из x с точностью Epsilon.
double SquareRoot(double x, double Epsilon)
{
// squareRoot(n+1) = (x / squareRoot(n) + squareRoot(n)) / 2.0
double squareRoot = 1.0;
double currentGuess = ((x / squareRoot) + squareRoot) / 2.0;
while (Math.Abs(squareRoot - currentGuess) > Epsilon)
{
squareRoot = currentGuess;
currentGuess = ((x / squareRoot) + squareRoot) / 2.0;
}
return squareRoot;
}
Необходимо определить инвариант цикла, используемого в алгоритме. Пожалуйста, присылайте Ваши рассуждения, которыми Вы руководствовались, при определении инварианта.
С уважением, Михаил Баранов.

Комментариев нет:
Отправить комментарий