본문 바로가기
Develop/Algorithm

바빌로니아 법의 점화식을 이용한 제곱근의 근삿값 찾기

by jaeyoungb 2022. 10. 11.

 

 

 

다음 코드를 통해 예시를 살펴보자.

 

public class Solution { 
	public String computeSquareRoot(int num) {
    
    // 바빌로니아 법 정밀도 상수 (높을수록 정밀해짐)
    final int PRECISION = 10;

    double x = PRECISION;

    for (int i = 0; i < PRECISION; i++) {
      x = 0.5 * (num / x + x);
    }

    // 바빌로니아 법을 통한 제곱근을 소수점 두 자리까지 반환
    return String.format("%.2f", x);
  }
}

 

여기서, PRECISION 변수가 높은 수를 가질수록, 근삿값의 정밀도는 올라간다.

 

또, 바빌로니아 법의 점화식은 다음 코드 구문이라고 생각하면 된다.

 

x = 0.5 * (num / x + x);

(여기서, num에는 제곱근을 구할 수를 입력하면 된다.)

 

 

Java에는 Math.sqrt()라는 메서드를 통해, 특정한 수의 제곱근을 구할 수 있지만,

 

바빌로니아 법의 점화식을 통해, 제곱근의 근삿값을 구할 수도 있다.

 

 

Ref)

https://ko.wikipedia.org/wiki/%EB%B0%94%EB%B9%8C%EB%A1%9C%EB%8B%88%EC%95%84_%EB%B2%95

 

바빌로니아 법 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전.

ko.wikipedia.org

 

'Develop > Algorithm' 카테고리의 다른 글

Java) 버블 정렬(Bubble Sort) 알고리즘  (0) 2022.10.20
Java) 피보나치 수열 + Advanced  (0) 2022.10.20
시간복잡도  (0) 2022.09.28
그래프(Graph) 구조  (0) 2022.09.24
트리(Tree) 구조  (0) 2022.09.24