JAVA

JAVA - 로그함수 (밑이 2인 로그 함수)

하늘을난모기 2015. 11. 26. 22:12

자바 api에서 제공해주는 로그함수는 3가지 뿐입니다.

그 중에는 아쉽게도 밑을 직접 설정할 수 있는 함수가 없기때문에 직접 만들어야 합니다.

간단하게 수학 식을 알고 있다면 문제 없이 만들 수 있겠지만... 역시 까먹기 마련이죠.

저 역시 갑자기 사용해야 하는데 문득 생각이 나지 않아 이렇게 포스트를 하고 있네요. 하하;


자바 api에는 Math.log()와 Math.log10() 함수가 있습니다.

이 함수를 사용하여 밑이 2인 로그함수를 만들 수 있습니다.


baseLog(수, 밑)


첫 번째 방법.

static double baseLog(double x, double base) {

return Math.log10(x) / Math.log10(base);

}


두 번째 방법.

static double baseLog(double x, double base) {

return Math.log(x) / Math.log(base);

}

둘 중 아무거나 쓰셔도 상관없습니다. 원리가 같기 때문이죠.

실행을 해보면 잘 돌아가는 것을 확인할 수 있습니다~



전체 소스입니다. 심플하죠..

밑이 2 뿐만 아니라 원하는 수만큼 밑으로 사용할 수 있습니다.


수학적 지식이 필요한 프로젝트의 경우 이처럼 자주 사용되는 계산 법은 util 같이 하나의 패키지에 모아서 넣어두면 사용하기 유용합니다.

알고리즘을 풀 때도 마찬가지로 두고두고 사용할 수 있지요.


자신의 소스가 계속 쌓여서 하나의 자산이 되는걸 발견할 수 있어요.


간단하게 로그함수 작성에 대한 글을 작성해봤습니다.

'JAVA' 카테고리의 다른 글

자바8 - 3. 람다  (0) 2018.10.02
자바8 - 2. 동적 파라미터화  (0) 2018.10.02
HashMap vs HashTable vs ConcurrentHashMap  (0) 2017.12.31
CheckedException vs UnCheckedException  (0) 2017.06.16
JAVA - 변수  (0) 2014.07.20