Prev: Customized GUI
Next: bsearch.rb
From: Josh Cheek on 16 Nov 2009 03:08 [Note: parts of this message were removed to make it a legal post.] On Mon, Nov 16, 2009 at 1:45 AM, Steve Wilhelm <steve(a)studio831.com> wrote: > 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/. > > 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.
From: Giampiero Zanchi on 16 Nov 2009 04:45
ciao a lot of improvements is possible; range_size = 64 n_middle = rand(101) + range_size n_decrease = rand(range_size) n_left = n_middle - n_decrease n_right = n_middle + (range_size - n_decrease - 1) p "#{n_left} - #{n_middle} - #{n_right}" -- Posted via http://www.ruby-forum.com/. |