The following algorithm finds the square root of a positive number: To begin the
ID: 3595672 • Letter: T
Question
The following algorithm finds the square root of a positive number:
To begin the computation, you need a value lowGuess less than the square root of the number and a value highGuess that is larger. You can use zero as lowGuess and the number itself as highGuess. The parameter tolerance controls the precision of the result independently of the magnitude of number. For example, computing the square root of 250 with tolerance equal to 0.00005 results in 15.81. This result has four digits of accuracy.
Implement this algorithm.
Explanation / Answer
Java:
public static double squareRoot(double number, double lowGuess, double highGuess, double tolerance) {
double newGuess = (lowGuess + highGuess) / 2;
if (((highGuess - newGuess) / newGuess) < tolerance)
return newGuess;
else if (newGuess * newGuess > number)
return squareRoot(number, lowGuess, newGuess, tolerance);
else if (newGuess * newGuess < number)
return squareRoot(number, newGuess, highGuess, tolerance);
else
return newGuess;
}
In python 3:
def squareRoot(number, lowGuess, highGuess, tolerance):
newGuess = (lowGuess + highGuess) / 2
if ((highGuess - newGuess) / newGuess) < tolerance:
return newGuess
elif newGuess * newGuess > number:
return squareRoot(number, lowGuess, newGuess, tolerance)
elif newGuess * newGuess < number:
return squareRoot(number, newGuess, highGuess, tolerance)
else:
return newGuess
print("Square root of 250: %.2f" % squareRoot(250,0,250,0.00005))
# copy pastable code: https://paste.ee/p/VVPZO
If you need in any other language just comment and I will make the change.
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.