Ruby中Math Power(**)的反转是什么?

时间:2010-07-20 01:52:21

标签: ruby math

我想知道如何在Ruby中获得权力的反转?

2 ** 4 # => 16

然后我想得到它的反转,我不确定使用哪个运算符

16 ?? 2 # => 4

3 个答案:

答案 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