我打得/红宝石学习和做了一些如下述代码片段,并得到:红宝石``**方法
1 ** 5 # => 1
43 ** 67 # => 27694053307656599023809257877241042019569010395053468294153499816223586030238186389799480520831161107426185107
什么是**操作员红宝石?为什么我第二次查询的结果数量太大?
我打得/红宝石学习和做了一些如下述代码片段,并得到:红宝石``**方法
1 ** 5 # => 1
43 ** 67 # => 27694053307656599023809257877241042019569010395053468294153499816223586030238186389799480520831161107426185107
什么是**操作员红宝石?为什么我第二次查询的结果数量太大?
**是指数操作符 - 它执行指数(功率)计算。让我通过这个简单的例子说明
2 ** 2 => 2 * 2 => 4
2 ** 3 => 2 * 2 * 2 => 8
2 ** 4 = > 2 * 2 * 2 * 2 => 16
2 ** 5 => 2 * 2 * 2 * 2 * 2 => 32
所以** 43 67 => 43 * 43 * 43 * 43 ................................................. ..............
所以它导致这样一个大数。
获取有关operatorts的更多详细信息http://www.tutorialspoint.com/ruby/ruby_operators.htm
在Ruby中,**
是指数运算符。也就是说,通过做a**b
,你正在提高a
的权力b
。按照惯例,操作数之间没有空格。
例子:
3**2
#=> 9
2**3
#=> 8
注意的是,指数运算符具有比乘法和除法的优先级高,就像数学:
2 * 2**3 # (2 * 8)
#=> 16
18/3**2 # (18/9)
#=> 2
如果链中的运营商,优先从解决向右:
2**2**3 == 2**(2**3) # (2^8)
#=> true
**
指数 - 执行对运营指数(功率)计算
1 ** 5 = 1
意味着它将执行像1*1*1*1*1
五次
如果你尝试这种
2**4 = 16
意味着它将执行像2*2*2*2
四次
它只是这样做:
2 * 4 => 8
和
2 ** 4 => 64
它当作第2功率(2)^ 4 => 2 * 2 * 2 * 2
您的问题是什么? – sawa