2016-05-27 32 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)'相同的結果。 –