我想知道如何在Ruby中获得权力的反转?
2 ** 4 # => 16
然后我想得到它的反转,我不确定使用哪个运算符
16 ?? 2 # => 4
答案 0 :(得分:63)
取幂的倒数是对数。如果是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
你是否认为这个解释很好,因为它扩展了你的知识,或者因为你讨厌高中数学而感到不好,完全取决于你: - )
答案 1 :(得分:6)
Math.log(16) / Math.log(2)
答案 2 :(得分:0)
从Ruby 1.9.1开始,获取对数的更简洁方法是使用Math.log2
:
[1] pry(main)> Math.log2(2**4)
=> 4.0