什么';在Ruby中,数学能力(**)的反面是什么?
我想知道如何在Ruby中得到幂的倒数什么';在Ruby中,数学能力(**)的反面是什么?,ruby,math,Ruby,Math,我想知道如何在Ruby中得到幂的倒数 2 ** 4 # => 16 然后我想得到它的倒数,我不确定该用哪个操作符 16 ?? 2 # => 4 幂的倒数是对数。如果ab=c,则logac=b 您可以在模块中找到对数函数,特别是base-e的log(),base-10的log10() 要获得不同基数的对数(例如n),请使用公式logNa=logxa/logxN,其中x是一个值,如e或10 针对您的具体情况: log216=loge16/loge2=Math.log(16)/Math
2 ** 4 # => 16
然后我想得到它的倒数,我不确定该用哪个操作符
16 ?? 2 # => 4
幂的倒数是对数。如果
ab=c
,则logac=b
您可以在模块中找到对数函数,特别是base-e的log()
,base-10的log10()
要获得不同基数的对数(例如n
),请使用公式logNa=logxa/logxN
,其中x
是一个值,如e或10
针对您的具体情况:
log216
=loge16/loge2
=Math.log(16)/Math.log(2)
=4
<>你是否认为这个解释很好,因为它扩展了你的知识,或者因为你讨厌高中数学而不好,完全取决于你:——) < P>一个更干净的获得对数的方法,从Ruby 1.9-1开始,就是使用<代码>数学。Log2 :
[1] pry(main)> Math.log2(2**4)
=> 4.0
哈,非常感谢paxdiablo这是一个很好的解释,是的,你是对的,我过去很讨厌它,但现在我可以看到,我错过了很多,因为这,干杯!要得到简单的平方根,只需使用Ruby的
Math.sqrt(16)#=>4.0
——因为平方根并不总是整数,所以得到的是浮点。如果您确实想要/期望一个整数,请使用Math.sqrt(16).to_i
将结果强制转换为int。将结果向下舍入为最接近的整数。
[1] pry(main)> Math.log2(2**4)
=> 4.0