Forums Register Login

Generate Random Number within a range including negatives?

+Pie Number of slices to send: Send
I have no idea how to generate a random number within a given range. The range can include negative numbers. Can anyone help?
+Pie Number of slices to send: Send
Why not subtract a fixed number from a random number? If you need more or less range, multiply by some suitable number.
+Pie Number of slices to send: Send
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.
+Pie Number of slices to send: Send
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.
Too many men are afraid of being fools - Henry Ford. Foolish tiny ad:
a bit of art, as a gift, that will fit in a stocking
https://gardener-gift.com


reply
reply
This thread has been viewed 3768 times.
Similar Threads
Select Random result from Resultset
how to genrate a random number inside the range
generating random numbers
converting ascii number to capital letter
generate random number in a range?
More...

All times above are in ranch (not your local) time.
The current ranch time is
Mar 29, 2024 07:17:36.