我想知道如何在Ruby中获得相反的功效?
2 ** 4 # => 16
然后我想得到它的反转,我不确定使用哪个运算符
16 ?? 2 # => 4
取幂的倒数是对数。如果ab = c
,那么logac = b
。
你可以在Math
模块中找到对数函数,特别是log()
用于base-e,log10()
用于base-10。
要获得不同基数(例如n
)的对数,请使用公式logNa = logxa/logxN
,其中x
是e或10等值。
对于您的具体情况:
log216
= loge16/loge2
= Math.log(16) / Math.log(2)
= 4
你是否认为这个解释很好,因为它扩展了你的知识,或者因为你讨厌高中数学而不好,完全取决于你:-)
Math.log(16) / Math.log(2)
从Ruby 1.9.1开始,获得对数的更简洁方法是使用Math.log2
:
[1] pry(main)> Math.log2(2**4)
=> 4.0