aspose file tools*
The moose likes Beginning Java and the fly likes Generate Random Number within a range including negatives? Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Beginning Java
Bookmark "Generate Random Number within a range including negatives?" Watch "Generate Random Number within a range including negatives?" New topic
Author

Generate Random Number within a range including negatives?

Andrew Robinson
Greenhorn

Joined: Jan 06, 2010
Posts: 15
I have no idea how to generate a random number within a given range. The range can include negative numbers. Can anyone help?
T Dahl
Ranch Hand

Joined: Oct 07, 2010
Posts: 35
Why not subtract a fixed number from a random number? If you need more or less range, multiply by some suitable number.
marc weber
Sheriff

Joined: Aug 31, 2004
Posts: 11343

Math.random() is a good place to start. If that doesn't suit your needs, then java.util.Random should be your next stop.

Math.random() generates a double between 0 and 1 (including 0, but not 1). As T Dahl suggested, you can multiply this value by some factor to increase your range, then shift that range by adding or subtracting.


"We're kind of on the level of crossword puzzle writers... And no one ever goes to them and gives them an award." ~Joe Strummer
sscce.org
Rob Spoor
Sheriff

Joined: Oct 27, 2005
Posts: 19723
    
  20

In general, for any function f that returns a value between a and b, to get a value between c and d apply the following calculation: (f(x) - a) / (b - a) * (d - c) + c.

The subtraction of a gives you a value between 0 and (b - a).
The dividing by (b - a) gives you a value between 0 and 1 (provided b != a).
The multiplication gives you a value between 0 and (d - c).
The addition of c gives you a value between c and d.

In this case, a == 0 and b == 1, so you are left with Math.random() * (d - c) + c.


SCJP 1.4 - SCJP 6 - SCWCD 5 - OCEEJBD 6
How To Ask Questions How To Answer Questions
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Generate Random Number within a range including negatives?