java 중 제곱근 (sqrt) 알고리즘의 실례 상세 설명
제곱근(sqrt, square root)은 수학에서 흔히 볼 수 있는 수학의 공식이다.
프로그램을 사용하여 제곱근을 구하는 것은 주로 두 단계로 나뉜다.
첫 번째 단계:while () 순환, 순환 횟수와 소수의 자릿수를 제어하여 무한 순환과 여러 소수의 발생을 방지한다.
두 번째 단계: 제곱근을 분해하고 순환을 사용하여 점차적으로 줄이고 제곱근에 가깝다.
같은 이치로 다른 방근도 유사하게 확장할 수 있지만 주의해야 할 것은
짝수 차방근은 정수를 입력해야 한다.
홀수 차방근은 정수로 전환하여 순환의 수렴을 확보하고 결과의 양과 음 판단을 해야 한다.
코드는 다음과 같습니다.
/*
* 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
읽어주셔서 감사합니다. 여러분에게 도움이 되었으면 좋겠습니다. 본 사이트에 대한 지지에 감사드립니다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
38. Java의 Leetcode 솔루션텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.