2014-04-06 7 views
0

log (n)의 대략적인 값을 찾는 알고리즘이 더 빠르며 그 시간 복잡도는 무엇입니까?log (n)의 대략적인 값을 찾는 알고리즘이 더 빠르며 그 시간 복잡도는 무엇입니까?

단지 log (n)의 정수 값을 원하고 Java의 inbuilt 함수 log (n)은 대략 정확도가 두 배로 된 ans를 제공하며 이는 나에게 쓸모가 없으며 많은 시간이 걸린다. 로그와 곱셈은 내 프로그램의 주요 기능 중 하나이기 때문에 로그는 내 프로그램을 너무 느리게 만듭니다. 여기

몇 가지 벤치 마크

곱하기했다 : 대수가했다 466 밀리 초

: 3245 밀리 초

은 곱셈의 대략 10 시간을.

(참고 : 내가 벤치 마크를 사용 - 여기 단지를 너무 많은 시간 내 프로그램의 다른 주요 기능 비교했다 보여 그리고 난이 기능의 두 가지 유형 비교할 수없는 알고)

그래서를 알고 싶다면 log (n)의 대략적인 값을 찾는 더 빠른 알고리즘이 있으며 그 시간 복잡성은 무엇입니까?

(참고 : - 알고리즘은 어떤베이스 로그()에 대한 작동합니다) 내가 실제로 빨라집니다 경우 아무 생각이 없다,하지만 당신은 정수 x이 있고 기본 k에서 로그를 원하는 가정

+1

에 대한 Google 검색의 '인덱스'이라고

log_k(x) = log_2(x)/log_2(k) 

주 [빠른 대수 근사] 좋은 가능성을집니다. 너 탐험 해봤 니? –

+0

'곱셈'이란 어떤 알고리즘을 의미합니까? 근사 로그에는 여러 가지 방법이 있습니다 (Taylor, arctan, Hurwitz 등의 추가) – m13r

답변

1

: 어떤 i를 들어, floor(log_2(i)) 가장 중요한 없음 제로 비트