代码之家  ›  专栏  ›  技术社区  ›  zanona oldmanwiggins

在Ruby中,数学幂(**)的反方向是什么?

  •  22
  • zanona oldmanwiggins  · 技术社区  · 14 年前

    我想知道如何在Ruby中得到幂的倒数?

    2 ** 4 # => 16
    

    16 ?? 2 # => 4
    
    4 回复  |  直到 10 年前
        1
  •  64
  •   paxdiablo    7 年前

    指数的倒数是对数。如果 a b = c log a c = b .

    您可以在 Math 模块,特别是 log() 用于底座- e log10() 对于base-10。

    不同的 n ),使用公式 log N a = log x a / log x N ,在哪里 x 是一个值,例如 e 或者10个。

    具体的 案例:

    log 2 16
    = log e 16 / log e 2
    = Math.log(16) / Math.log(2)
    = 4

        2
  •  6
  •   Peter    14 年前
    Math.log(16) / Math.log(2)
    
        3
  •  1
  •   ynkr    10 年前

    从Ruby1.9.1开始,获得对数的一种更简洁的方法是使用 Math.log2 :

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