Maison  >  Article  >  Java  >  Démonstration de code pour trouver la racine carrée (sqrt) en Java

Démonstration de code pour trouver la racine carrée (sqrt) en Java

Y2J
Y2Joriginal
2017-04-25 17:29:028867parcourir

L'algorithme de racine carrée (sqrt) en java

La racine carrée (sqrt, racine carrée) est une formule mathématique courante en mathématiques ;

L'utilisation d'un programme pour trouver la racine carrée est principalement divisée en deux étapes :

La première étape : boucle while(), contrôlez le nombre de boucles et nombre de décimales, Empêcher les boucles infinies et plusieurs décimales ;

Étape 2 : En décomposant la racine carrée, utilisez des boucles pour réduire progressivement et vous rapprocher de la racine carrée ;

De même, d'autres racines carrées peuvent également être utilisées. Semblable à l'expansion, mais il convient de noter que
les racines carrées paires doivent garantir que l'entrée est un nombre positif ;
racines carrées impaires doivent être convertis en nombres positifs pour assurer la convergence de la boucle, puis juger si le résultat est positif ou négatif ;

Le code est le suivant :

/* 
 * Algorithms.java 
 * 
 * Created on: 2013.12.03 
 *   Author: Wendy 
 */ 

/*eclipse std kepler, jdk 1.7*/ 
 
public class Algorithms  
{ 
  public static double sqrt(double c) 
  { 
    if(c<0) return Double.NaN; //NaN: not a number 
    double err = 1e-15; //极小值 
    double t = c; 
    while (Math.abs(t-c/t) > err*t) //t^2接近c, 防止小数 
      t = (c/t + t)/2.0; 
    return t; 
  } 
   
  public static double cbrt(double c) 
  { 
    boolean b = (c>0) ? true : false; //保存c的符号 
    c = (c>0) ? c : -c; 
    double err = 1e-15; 
    double t = c; 
    while(Math.abs(t*t-c/t) > err*t) 
      t = (c/(t*t)+t)/2.0; 
    t = (b) ? t : -t; 
    return t; 
  } 
   
  public static void main(String[] args)  
  { 
    double r = sqrt(4.0); 
    System.out.println("sqrt(4.0) = " + r); 
    double rc = cbrt(-27.0); 
    System.out.println("cbrt(9.0) = " + rc); 
  } 
}

Sortie :

sqrt(4.0) = 2.0 
cbrt(9.0) = -3.0

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn