What's the reverse of Math Power (**) in Ruby? What's the reverse of Math Power (**) in Ruby? ruby ruby

What's the reverse of Math Power (**) in Ruby?


The inverse of exponentiation is the logarithm. If ab = c, then logac = b.

You can find logarithm functions in the Math module, specifically log() for base-e and log10() for base-10.

To get a logarithm to a different base (say n), use the formula logNa = logxa/logxN, where x is a value such as e or 10.

For your specific case:

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

Whether you consider the explanation good because it expands your knowledge, or bad because you hated high school math, is entirely up to you :-)


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


A cleaner way to obtain the logarithm, starting with Ruby 1.9.1, would be to use Math.log2:

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