Java의 제곱근(sqrt) 알고리즘
제곱근(sqrt, 제곱근)은 수학에서 흔히 사용되는 수학 공식입니다.
제곱근을 구하는 프로그램을 사용하는 것은 크게 두 단계로 나뉩니다.
첫 번째 단계: while() 루프, 루프 수와 소수 자릿수, 무한 루프 및 다중 소수 자릿수 방지;
2단계: 제곱근을 분해하여 루프를 사용하여 점진적으로 감소하여 제곱근에 접근합니다.
마찬가지로 다른 제곱근도 사용할 수 있습니다. 확장과 유사하지만
짝수의 제곱근은 입력이 양수인지 확인해야 합니다.
홀수의 제곱근은 루프 수렴을 보장하기 위해 양수로 변환한 다음 결과가 양수인지 음수인지 판단해야 합니다.
코드는 다음과 같습니다.
/* * 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); } }
출력:
sqrt(4.0) = 2.0 cbrt(9.0) = -3.0
위 내용은 Java에서 제곱근(sqrt)을 찾는 코드 데모의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!