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/.
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.
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.
[Note: parts of this message were removed to make it a legal post.]
On Sat, Nov 14, 2009 at 7:54 PM, Alex Untitled <somebodydc6...@gmail.com>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?
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 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.
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
[Note: parts of this message were removed to make it a legal post.]
On Sat, Nov 14, 2009 at 8:54 PM, Alex Untitled <somebodydc6...@gmail.com>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/.
# 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
> The problem with your solution is that low and high can be the same > number. > -- > Posted via http://www.ruby-forum.com/.
In that case, the cardinality of the solution set is 1, perhaps not desirable for a guessing game, but it is not stated that this should not happen, and if no minimum range is specified, then it is subjective where that line is drawn. ie if a solution set with cardinality 1 is not appropriate, then what about a solution set with cardinality two? At what point do we say the numbers are sufficiently far apart that they are acceptable?
Perhaps a different approach is required altogether. Instead of giving the maximum value the numbers can be, give the minimum and maximum difference between the numbers. I don't see much value in a minimum number anyway, choosing a random number between 90 and 100 doesn't seem to offer anything over choosing a minimum number between 0 and 10.
While I think saying "give me an upper bound between 10 and 20, with a target between 0 and that number" is a better approach, it is not what was asked for, and I thought it would be better to answer the question as asked, than to impose my own restrictions.