Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
什么';在Ruby中,数学能力(**)的反面是什么?_Ruby_Math - Fatal编程技术网

什么';在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

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