2016-05-27 29 views
-5

我寻找它接受一个输入数,并返回两个数字函数产生两个数字之间的数

def generate_number input_number, max, min 
end 

的函数的输出之间的数应该是一个数取决于input_number之间的函数最小和最大。

注:每次它应该返回的input_number

回答

2

您正在寻找Random相同的输出:

Random.new(123).rand(1..10) #=> 3 

123seed(你input_number),110分钟max值。

不同的种子会产生不同的数字,相同的种子会产生相同的数字。

r = Random.new(123) 
10.times.map { r.rand(1..10) } 
#=> [3, 3, 7, 2, 4, 10, 7, 2, 1, 2] 

r = Random.new(456) 
10.times.map { r.rand(1..10) } 
#=> [6, 10, 5, 6, 8, 2, 9, 4, 6, 3] 

r = Random.new(123) 
10.times.map { r.rand(1..10) } 
#=> [3, 3, 7, 2, 4, 10, 7, 2, 1, 2] 
+1

值得一提的是,如果你不需要重复性(和你平时不),你可以只用'兰特(1..10):产生一个可重复的随机数序列时,这是非常有用的'。你也可以用['Random.srand'](http://ruby-doc.org/core-2.2.0/Random.html#method-c-srand)设置全局种子,即'Random.srand(123 ); rand(1..10)'将产生与Random.new(123).rand(1..10)'相同的结果。 –