Java provides support to either generate random numbers through java.lang.Math package or java.util.Random.
- Using java.lang.MathThere exists a static method inside this class, Math.random. It is very convenient to use and returns a double between the range 0.0 and 1.0 i.e. it returns a floating point number between 0 and 1.
 - public static void main(String[] args){ double randNum = Math.random(); System.out.println(randNum); }
 - Random number within a range -To generate a random number within a range we need to further process the number returned by Math.random()
 
 This code produces a random double between the range 10 to 100.- public static void main (String[] args){ double min = 10.0; double max = 100.0; double randNum = randRange(min, max); System.out.println(randNum); } public static double randRange(double min, double max){ double x = (Math.random()*((max-min)+1))+min; return x; }
 With slight modification it can be made to return an integer.- public static void main (String[] args){ int min = 10; int max = 100; int randNum = randRange(min, max); System.out.println(randNum); } public static int randRange(int min, int max){ int x = (int) (Math.random()*((max-min)+1))+min; return x; }
- Using java.util.RandomAs java.util.Random is a class, we need to create an object before using it. This class has multiple methods like- nextDouble(),- nextInt()etc. which makes it easy to generate random numbers to our requirement.
 The following snippet produces a random double between 0 and 1 similar to Math.random()
 Usually, the constructor, i.e.- public static void main (String[] args){ Random rand = new Random(System.currentTimeMillis()); System.out.println(rand.nextDouble()); }- Random rand = new Random(System.currentTimeMillis());can also be used without the- System.currentTimeMillis(). This is an optional argument and acts as a seed. It's fine if you just use- Random rand = new Random();but it's better to use with the seed. Theoretically, the seed could be any number.- Generating a random integer -- public static void main (String[] args){ Random rand = new Random(System.currentTimeMillis()); int randNum = rand.nextInt(); System.out.println(randNum); }- Random integer between 0 and another number -- public static void main (String[] args){ Random rand = new Random(System.currentTimeMillis()); int max = 1000; int randNum = rand.nextInt(max); System.out.println(randNum); }- Random integer between a range -- public static void main (String[] args){ Random rand = new Random(System.currentTimeMillis()); int max = 1000; int min = 500; int randNum = r.nextInt((max - min) + 1) + min; System.out.println(randNum); }
Comments
Post a Comment