2010-07-20 13 views

Respuesta

59

La inversa de exponenciación es el logaritmo. Si es ab = c, entonces logac = b.

puede encontrar funciones logarítmicas en el módulo Math, específicamente para log() base-e y log10() de base 10.

Para obtener un logaritmo en una base de diferentes(digamos n), utilice la fórmula logNa = logxa/logxN, donde x es un valor como e o 10.

para su caso específico :

log216
= loge16/loge2
= Math.log(16)/Math.log(2)
= 4

Si se tiene en cuenta la explicación buena, ya que amplía sus conocimientos, o malo, ya que odiaba matemáticas en la escuela, es totalmente de usted :-)

+4

Ha, muchas gracias paxdiablo fue una muy buena explicación, y sí que tienes razón Solía ​​odiarlo, pero ahora puedo ver que me he perdido mucho por eso, ¡salud! – zanona

+1

I + 1'ed como aprendí algo sobre Matemáticas! Así que gracias. –

5
Math.log(16)/Math.log(2) 
4

O, alternativamente, hacerlo de esta manera:

>> 16**(1.0/2) 
=> 4.0 
+4

Eso es una total coincidencia por cierto :-) Al aplicarlo a 3^4 = 81, no es cierto decir que 81^(1/3) es 4 (en realidad es aproximadamente 4.33). – paxdiablo

+5

@paxdiablo - no es una coincidencia, es matemática. Tienes un error en tu ejemplo. Para 3^4 = 81 debería ser 81^(1/4) que es igual a 3, no 81^(1/3). – maro

+2

@maro, has hecho las sustituciones incorrectamente. La forma que has usado sería correcta si Jeremy hubiera declarado 16^(1/4) = 2, y eso sería matemáticamente correcto. Pero el dado es correcto solo por coincidencia.Es equivalente a la ecuación (en) que mencioné en mi primer comentario. – paxdiablo

0

en realidad:

  • Maro son correctos, pero
  • Maro comentario no es compatible con la respuesta de Jeremy Murray-Wakefield, que no se aplica a la pregunta de la OP. Por lo tanto,

Maro es "correcto" por su cuenta, pero no como un apoyo a la respuesta Jeremy Murray-Wakefield, que en sí misma no es tanto "mal" no es la respuesta correcta a las preguntas del OP.

Espero que sea definitivo!

0

una forma más limpia para obtener el logaritmo, comenzando con Ruby 1.9.1, sería utilizar Math.log2:

[1] pry(main)> Math.log2(2**4) 
=> 4.0 
Cuestiones relacionadas