Home > Net >  Random Number from 0 to 1000 Math.random()
Random Number from 0 to 1000 Math.random()

Time:05-02

Currently making a program for homework and I am confused regarding one aspect of the normal formula that is usually used

Math.random() * (max - min) min

I understand that this would work perfectly fine with a range of 1 - 1000 for example.

Now, sorry for my ignorance and if this comes out as a stupid question... but if I want a range from 0 - 1000, would this still work?

Since the range 1 - 1000 would set (max - min) as 999, then multiply by Math.random() and then add min... range 0 - 1000 would set (max - min) as 1000 and would not add anything at the end since its still 0. Would this still work if I have min as 0 and max as 1000? Or would I have to go through a different route/formula?

CodePudding user response:

Let's break down the formula to see if it helps!

Given that Math.random() returns a double which has value 0 <= value < 1, when:

  • min = 1, the formula returns values between 1 (0 * (1000 - 1) 1 = 1) and 999 (0.999999... * (1000 - 1) 1 = 999)
  • min = 0, the formula returns values between 0 (0 * (1000 - 0) 0 = 0) and 999 (0.999999... * (1000 - 0) 0 = 999)

So, min = 0 works as you'd expect but it seems like you're missing a 1 in the formula's range term:

Generating an integer random number in a range with Math.random() is done by this formula: (int)(Math.random() * ((max - min) 1)) min

CodePudding user response:

Math.random() returns random nr range 0 to 1, so to get range 0 to 1000 all you need to do is to multiply by 1000. No need to add anything, so the formula will still work

  •  Tags:  
  • java
  • Related