Capítulo 6 Pregunta 22 (Matemáticas: aproxima la raíz cuadrada) (Matemáticas: aproxima la raíz cuadrada)

Capítulo 6 Pregunta 22 (Matemáticas: aproxima la raíz cuadrada) (Matemáticas: aproxima la raíz cuadrada)

  • ** 6.22 (Matemáticas: cálculo aproximado de la raíz cuadrada) Hay varias técnicas para implementar el método sqrt en la clase de matemáticas. Uno de ellos se llama Ley babilónica. Aproxima la raíz cuadrada de un número n usando la siguiente fórmula repetidamente:
    nextGuess = (lastGuess + n / lastGuess) / 2
    Cuando nextGuess y lastGuess son casi lo mismo, nextGuess es el valor aproximado de la raíz cuadrada. El valor de estimación inicial puede ser cualquier valor positivo (por ejemplo, 1). Este valor es el valor inicial de lastGuess. Si la diferencia entre nextGuess y lastGuess es menor que un número pequeño, como 0.0001, entonces nextGuess se puede considerar como una aproximación de la raíz cuadrada de n; de lo contrario, nextGuess se convierte en lastGuess y el proceso de encontrar la aproximación continúa. Implemente el siguiente método para devolver la raíz cuadrada de n.
    sqrt doble estática pública (n larga)
    ** 6.22 (Matemáticas: aproxima la raíz cuadrada) Hay varias técnicas para implementar el método sqrt en la clase Math. Una de estas técnicas se conoce como método babilónico. Se aproxima a la raíz cuadrada de un número, n, realizando repetidamente el cálculo utilizando la siguiente fórmula:
    nextGuess = (lastGuess + n / lastGuess) / 2
    Cuando nextGuess y lastGuess son casi idénticos, nextGuess es la raíz cuadrada aproximada. La suposición inicial puede ser cualquier valor positivo (por ejemplo, 1). Este valor será el valor inicial de lastGuess. Si la diferencia entre nextGuess y lastGuess es menor que un número muy pequeño, como 0.0001, puede afirmar que nextGuess es la raíz cuadrada aproximada de n. Si no es así, nextGuess se convierte en lastGuess y el proceso de aproximación continúa. Implemente el siguiente método que devuelve la raíz cuadrada de n: raíz cuadrada
    doble estática pública (n larga)
  • Código de referencia:
package chapter06;

public class Code_22 {
    
    
    public static void main(String[] args) {
    
    
        System.out.println(sqrt(2));
    }
    public static double sqrt(long n) {
    
    
        double nextGuess = n, lastGuess = 1;
        while(Math.abs(nextGuess-lastGuess) >= 1E-2) {
    
    
            lastGuess = nextGuess;
            nextGuess = (lastGuess + n / lastGuess) / 2;
        }
        return nextGuess;
    }
}

  • Los resultados muestran que:
1.4142156862745097

Process finished with exit code 0

Supongo que te gusta

Origin blog.csdn.net/jxh1025_/article/details/109168993
Recomendado
Clasificación