Velocity Reviews > Ruby > How do I get a random number between two random numbers?

# How do I get a random number between two random numbers?

Alex Untitled
Guest
Posts: n/a

 11-15-2009
I want to create a program that asks you to guess a number between two
numbers. The problem is that I can't figure out how to make the numbers
that you're guessing between random and have the random number you are
guessing between those two numbers. Does anybody know how to do this?
--
Posted via http://www.ruby-forum.com/.

Marnen Laibow-Koser
Guest
Posts: n/a

 11-15-2009
Alex Untitled wrote:
> I want to create a program that asks you to guess a number between two
> numbers. The problem is that I can't figure out how to make the numbers
> that you're guessing between random and have the random number you are
> guessing between those two numbers. Does anybody know how to do this?

Well, you know how to generate the first two random numbers, right?
Just take the difference between those two as the range in which to
generate the third. Simple.

Best,
--
Marnen Laibow-Koser
http://www.marnen.org
http://www.velocityreviews.com/forums/(E-Mail Removed)
--
Posted via http://www.ruby-forum.com/.

Alex Untitled
Guest
Posts: n/a

 11-15-2009
Marnen Laibow-Koser wrote:
> Alex Untitled wrote:
>> I want to create a program that asks you to guess a number between two
>> numbers. The problem is that I can't figure out how to make the numbers
>> that you're guessing between random and have the random number you are
>> guessing between those two numbers. Does anybody know how to do this?

>
> Well, you know how to generate the first two random numbers, right?
> Just take the difference between those two as the range in which to
> generate the third. Simple.
>
> Best,
> --
> Marnen Laibow-Koser
> http://www.marnen.org
> (E-Mail Removed)

So, would it be something like this?

num1 = rand(101)
num2 = rand(101)
num3 = num1 + num2

Anyway, thank you!
--
Posted via http://www.ruby-forum.com/.

Tony Arcieri
Guest
Posts: n/a

 11-15-2009
[Note: parts of this message were removed to make it a legal post.]

On Sat, Nov 14, 2009 at 7:54 PM, Alex Untitled <(E-Mail Removed)>wrote:

> I want to create a program that asks you to guess a number between two
> numbers. The problem is that I can't figure out how to make the numbers
> that you're guessing between random and have the random number you are
> guessing between those two numbers. Does anybody know how to do this?
>

first + rand(last + 1 - first)

--
Tony Arcieri
Medioh/Nagravision

Alex Untitled
Guest
Posts: n/a

 11-15-2009
OK, that didn't work. That just added the two numbers. How do I make a
number between two numbers again? I can't seem to find it.
--
Posted via http://www.ruby-forum.com/.

Alex Untitled
Guest
Posts: n/a

 11-15-2009
Alex Untitled wrote:
> OK, that didn't work. That just added the two numbers. How do I make a
> number between two numbers again? I can't seem to find it.

--
Posted via http://www.ruby-forum.com/.

Alex Untitled
Guest
Posts: n/a

 11-15-2009
I found the solution.

num1 = rand(1001)
num2 = 1001 + rand(1001)
number = num1 + rand(num2)
--
Posted via http://www.ruby-forum.com/.

Steve Wilhelm
Guest
Posts: n/a

 11-16-2009
Alex Untitled wrote:
> I found the solution.
>
> num1 = rand(1001)
> num2 = 1001 + rand(1001)
> number = num1 + rand(num2)

This can return: num1 = 1000, num2 = 1001, number = 2001

Try

module RandomNumberBetweenTwoRandomNumbers
def self.generate max
first = 1 + rand(max - 2);
second = max - rand(max - (first + 1))
between = first + 1 + rand((second - first) - 1)
[first, between, second]
end
end

puts RandomNumberBetweenTwoRandomNumbers::generate 10
puts RandomNumberBetweenTwoRandomNumbers::generate 100
puts RandomNumberBetweenTwoRandomNumbers::generate 1000

--
Posted via http://www.ruby-forum.com/.

Josh Cheek
Guest
Posts: n/a

 11-16-2009
[Note: parts of this message were removed to make it a legal post.]

On Sat, Nov 14, 2009 at 8:54 PM, Alex Untitled <(E-Mail Removed)>wrote:

> I want to create a program that asks you to guess a number between two
> numbers. The problem is that I can't figure out how to make the numbers
> that you're guessing between random and have the random number you are
> guessing between those two numbers. Does anybody know how to do this?
> --
> Posted via http://www.ruby-forum.com/.
>
>

max = 100

low , high = [ rand(max) , rand(max) ].sort

difference = high - low

middle = low + rand(difference).to_i #to_i for if low and high have same
value

puts "low = #{low}"
puts "middle = #{middle}"
puts "high = #{high}"

Steve Wilhelm
Guest
Posts: n/a

 11-16-2009
Josh Cheek wrote:

>
> # How about something like:
>
> max = 100
>
> low , high = [ rand(max) , rand(max) ].sort
>
> difference = high - low
>
> middle = low + rand(difference).to_i #to_i for if low and high have
> same
> value
>
> puts "low = #{low}"
> puts "middle = #{middle}"
> puts "high = #{high}"

The problem with your solution is that low and high can be the same
number.
--
Posted via http://www.ruby-forum.com/.