Ruby 函数在两个数字之间生成一个数字

Ruby 函数在两个数字之间生成一个数字,ruby,performance,Ruby,Performance,我正在寻找一个函数,它接受一个输入数字并返回两个数字之间的一个数字 def generate_number input_number, max, min end 该函数的输出值应是一个取决于输入值的数值,介于最小值和最大值之间 注意:每次它都应该为您要查找的输入编号返回相同的输出: 123是(您的输入编号),1和10您的最小值和最大值 不同的种子产生不同的数字,相同的种子产生相同的数字。这在生成可重复的随机数序列时特别有用: r = Random.new(123) 10.times.map

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

 def generate_number input_number, max, min
 end
该函数的输出值应是一个取决于
输入值的数值,介于最小值和最大值之间

注意:每次它都应该为您要查找的
输入编号返回相同的输出:

123
是(您的输入编号),
1
10
您的最小值和最大值

不同的种子产生不同的数字,相同的种子产生相同的数字。这在生成可重复的随机数序列时特别有用:

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]

值得注意的是,如果您不需要重复性(通常也不需要),您可以使用
rand(1..10)
。您还可以使用设置全局种子,即
Random.srand(123);rand(1..10)
将产生与Random.new(123).rand(1..10)
相同的结果。
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]