anyone know a slick way to create a random number between a negitive number and it's corosponding positive one? i.e. gimme a random # between -5 and 5 thanks -tyhooke
This gives you a random index (range of 0 to [array length - 1]) that will then give you the random contents (-5 to 5). [ January 12, 2005: Message edited by: PJ Chin ]
Sure, but what happens when the user comes back and says, "Oh, now we need -10 to 10"? The hard-coded values method would need to be rewritten, where the general method would not. I always try to think "Reusability" when I write code, and part of that is not having any hard-coded values (except perhaps in the testing/driver program)...
Give a man a fish, he'll eat for one day. Teach a man to fish, he'll drink all your beer.
Cheers, Jeff (SCJP 1.4 all those years ago...)
Originally posted by Jeff Bosch: int random = r.nextInt( 2 * number ) - number;
Keep in mind that Random.nextInt(number) returns a value in the range [0, number), meaning 0, 1 ... number - 1. It will not return number itself. Thus the general solution should be changed to
To add more flexibility, you may want to write a method with the following signature:
This would return a random integer between min and max. I'll leave the implementation as the proverbial exercise for the reader. However, it shouldn't be difficult to modify Jeff's program above for this purpose.