0
Random numbers
I'm trying to generate 2 random numbers x1 and x2 between 0 and 10 using the Math.random() method. How do I make sure that x1 >= x2 at all times?
3 Antworten
+ 3
Math.random() creates a double between 0 and 1 (but 1 is not included). So you will probably want to multiply this by 10 (and maybe round it or convert to int).
One way is that after generating both numbers, you check their values, and just swap them if not appropriate.
If you have to keep them in the same order, then you can generate the first value, then just make a loop to generate the second number until it meets your condition.
+ 3
You can making condition to controll that for example
if x1 < x2 : x1 = reassign x to new number that is not less than x2
+ 2
double x2 = Math.random() * 10;
double x1 = Math.random() * (10 - x2) + x2;
That'll do the trick. No loop, if-statement, or swapping is required.
I recommend keeping it as simple as possible like I've done with the above 2 lines.