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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ruby中Math Power(**)的反转是什么?相关的知识,希望对你有一定的参考价值。

我想知道如何在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

以上是关于Ruby中Math Power(**)的反转是什么?的主要内容,如果未能解决你的问题,请参考以下文章

[Fundamental of Power Electronics]-PART I-6.变换器电路-0 序

[Math_Medium] 869. Reordered Power of 2

Ruby中的大写,交换大小写和反转[重复]

如何反转 Hash.inspect 或 Array.inspect? (又名 .to_s)在 Ruby 中

反转列表。附加到 Ruby 中的列表的问题

leetcode_326 Power Of Three(Binary Manipulation)