The following are from:
http://scliu123.iteye.com/blog/506387
--------------------------
Package book.number;
Import Java.util.Random;
/**
* The class Java.util.Random in the Java Utility Class Library provides a way to generate random numbers of various types.
* It can produce random numbers of types such as int, long, float, double, and Goussian.
* The method random () in Java.lang.Math produces only random numbers of double types.
*/
public class Randomnumber {
public static void Main (string[] args) {
Generating random numbers using the Java.lang.Math random method
System.out.println ("Math.random ():" + math.random ());
Constructing a Java.util.Random object using a construction method without parameters
System.out.println ("Random object constructed using a constructor without parameters:");
Random Rd1 = new Random ();
Generate random numbers of various types
Generate integers by uniform distribution
SYSTEM.OUT.PRINTLN ("int:" + rd1.nextint ());
produce long integers by uniform distribution
System.out.println ("Long:" + Rd1.nextlong ());
Generate a float that is greater than or equal to 0, or less than 1, by uniform distribution [0, 1]
System.out.println ("float:" + rd1.nextfloat ());
Double number of [0, 1] range by uniform distribution
System.out.println ("Double:" + rd1.nextdouble ());
Generate random numbers by normal distribution
System.out.println ("Gaussian:" + Rd1.nextgaussian ());
Generate a series of random numbers
System.out.print ("Random Integer Sequence:");
for (int i = 0; i < 5; i++) {
System.out.print (Rd1.nextint () + "");
}
System.out.println ();
Specify the range that the random number produces
System.out.print ("[0,10) range of random integer Sequences:");
for (int i = 0; i < i++) {
The random nextint (int n) method returns a random number within the range of [0, N]
System.out.print (Rd1.nextint (10) + "");
}
System.out.println ();
System.out.print ("[5,23) range of random integer Sequences:");
for (int i = 0; i < i++) {
Because the range of nextint (int n) methods starts at 0,
So we need to convert the interval [5,28] to 5 + [0, 23].
System.out.print (5 + rd1.nextint (23) + "");
}
System.out.println ();
System.out.print ("Using nextfloat () to generate a sequence of random integers in the [0,99) Range:");
for (int i = 0; i < i++) {
System.out.print ((int) (Rd1.nextfloat () * 100) + "");
}
System.out.println ();
System.out.println ();
Constructing random objects using a constructor with parameters
The constructor parameter is a long type and is the seed that generates random numbers.
System.out.println ("Random object constructed using a constructed method with parameters:");
Random ran2 = new Random (10);
For random objects with the same seed, the sequence of random numbers generated is the same.
SYSTEM.OUT.PRINTLN ("Generate [0,10) of random integer sequences using seed-10 random objects:");
for (int i = 0; i < i++) {
System.out.print (Ran2.nextint (10) + "");
}
System.out.println ();
Random ran3 = new Random (10);
SYSTEM.OUT.PRINTLN ("Generates a sequence of random integers in [0,10) using a random object with another seed of 10:");
for (int i = 0; i < i++) {
System.out.print (Ran3.nextint (10) + "");
}
System.out.println ();
The sequence of random numbers generated by ran2 and Ran3 is the same, if you use two random objects that are not generated with a parameter constructor,
This is not the case because the seed default of the random object that is generated without the parameter constructor is the number of milliseconds of the current system time.
In addition, using random directly cannot avoid generating duplicate numbers, and if you need to generate a sequence of random numbers with no duplicates, you need to use arrays and collection classes
The 4th chapter of this book will give a solution.
}
}