utcghghvgh utcghghvgh - 6 months ago 12
Ruby Question

Function to generate a number between two numbers

I am looking for a function which takes an input number and returns a number between two numbers

def generate_number input_number, max, min
end


The output of the function should be a number dependent on the
input_number
between min and max.

Note: Everytime it should return the same output for the
input_number

Answer

You are looking for Random:

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

123 is the seed (your input_number), 1 and 10 your min and max values.

Different seeds generate different numbers, same seeds result in identical numbers. This is especially useful when generating a repeatable series of random numbers:

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]