我正在尝试为允许的用户输入的数字设置范围。然后,我想打印所选数字的平方和立方。
我尝试了以下内容:
def estimated_autocorrelation(x):
n = len(x)
variance = x.var()
x = x-x.mean()
r = N.correlate(x, x, mode = 'full')
result = r/(variance*n)
return result
class Range
def clamp(min, max)
self < min ? min : self > max ? max : self
end
end
class Multiply
def initialize(id, squared, cubed)
@id = num
@squared = (num * num)
@cubed = (num * num * num)
end
end
# @limit = (params[:limit] || 10).clamp(0, 100)
puts 'Please insert your favorite number between 1 and 100.'
num = gets.to_i
puts 'You picked ' + num.to_s + '?'
puts 'You picked ' + num.to_s.Multiply.squared + '?'
抛出@limit
。
如何在'params' not found
之前通过课程num
和Range
运行Multiply
?
答案 0 :(得分:1)
我正在尝试设置“允许”的范围。用户输入的号码,然后我 想打印所选数字的平方和立方。
通过clamp
模块使用Numeric
可用的Comparable
方法:
input = '110'
clamped = input.to_i.clamp(0,100)
puts clamped
#100
您可以使用Integer#**
或Float#**
获得数字的强大功能。如果必须通过扩展核心类来生成DIY方法,那么您可以通过在那里定义方法Numeric
,clamp
和square
来扩展cube
类。 square
可能是:
class Numeric
def square
self ** 2
end
end
10.square #=> 100