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!