web-dev-qa-db-fra.com

Algorithme de logarithme

J'ai besoin d'évaluer un logarithme de n'importe quelle base, peu importe, avec une certaine précision. Existe-t-il un algorithme pour cela? Je programme en Java, donc je vais bien avec Java code.

Comment trouver un logarithme binaire très rapidement? (O (1) au mieux) pourrait répondre à ma question, mais je ne le comprends pas. Peut-il être clarifié?

25
Justin

Utilisez cette identité:

journalb(n) = loge(n)/logeb)

log peut être une fonction de logarithme dans n'importe quelle base, n est le nombre et b est la base. Par exemple, dans Java cela trouvera le logarithme en base 2 de 256:

Math.log(256) / Math.log(2)
=> 8.0

Math.log() utilise la base e, soit dit en passant. Et il y a aussi Math.log10() , qui utilise la base 10.

76
Óscar López