Getting random numbers in Java
The first solution is to use the java.util.Random
class:
import java.util.Random;
Random rand = new Random();
// Obtain a number between [0 - 49].
int n = rand.nextInt(50);
// Add 1 to the result to get a number from the required range
// (i.e., [1 - 50]).
n += 1;
Another solution is using Math.random()
:
double random = Math.random() * 49 + 1;
or
int random = (int)(Math.random() * 50 + 1);
Generating a Random Number between 1 and 10 Java
As the documentation says, this method call returns "a pseudorandom, uniformly distributed int value between 0 (inclusive) and the specified value (exclusive)". This means that you will get numbers from 0 to 9 in your case. So you've done everything correctly by adding one to that number.
Generally speaking, if you need to generate numbers from min
to max
(including both), you write
random.nextInt(max - min + 1) + min
Getting random numbers in Java between two numbers
The static method Math.random()
returns a number between 0 and 1 so you just have to multiply the result with the difference between you minimal and maximal value and add this to your minimal value.
int min = 65;
int max = 122;
int random = (int) min + (max - min) * Math.random();
Generating random number in Java
use 100 as argument in nextInt()
nextInt(100)
Update based on your comment
just create a new static method
public static int genRandom(){
return new Random().nextInt(100);// or may be cache random instance
}
Java Generate Random Number Between Two Given Values
You could use e.g. r.nextInt(101)
For a more generic "in between two numbers" use:
Random r = new Random();
int low = 10;
int high = 100;
int result = r.nextInt(high-low) + low;
This gives you a random number in between 10 (inclusive) and 100 (exclusive)
Generate three Random numbers with sum add to predefined value in java, where 3 numbers stored in 3 different textfields?
You could use Math.random() instead of the Random class. Math.random() returns a double between 0 and 1. So the only thing you have to do is multiply the result of Math.random() with N. The next number would be N minus your result from the subtraction of N and the previous result.
final int N = 20;
final int result0 = (int) (Math.random() * N);
final int result1 = (int) (Math.random() * (N - result0));
final int result2 = N - result0 - result1;
EDIT: You could than choose the first, second and third parameter randomly too.
Related Topics
Which Cipher Suites to Enable for Ssl Socket
How to Add Jradiobutton to Group in Jtable
Certain Unix Commands Fail with "... Not Found", When Executed Through Java Using Jsch
Java: Notify() VS. Notifyall() All Over Again
Add Jar Files to a Spark Job - Spark-Submit
What Is the "Owning Side" in an Orm Mapping
Java Time-Based Map/Cache with Expiring Keys
Arithmeticexception: "Non-Terminating Decimal Expansion; No Exact Representable Decimal Result"
Java: How to Split an Arraylist in Multiple Small Arraylists
Handling Passwords Used for Auth in Source Code
How to Specify the Schema When Connecting to Postgres with Jdbc
Junit 5: How to Assert an Exception Is Thrown
How to Invoke a Linux Shell Command from Java