Several Methods for Java to generate random numbers

Source: Internet
Author: User

I. in j2se, we can use math. the random number generated by the random () method is a double between 0 and 1. We can multiply it by a certain number, for example, by 100, it is a random value of less than 100, which is not found in j2s.

II. in Java. the util package provides a random class. We can create a new random object to generate a random number. It can generate random integers, random float, random double, random long, this is also a method that we often use to retrieve random numbers in the j2's program.

III. there is a currenttimemillis () method in our system class. This method returns a millisecond value from 00:00:00, January 1, January 1, 1970. The return type is long. We can use it as a random number, we can use him to modulo some numbers to limit him to a certain range.

In fact, the default construction method of random also uses the third method to generate random numbers.


The random class in method 2 is described as follows:

The Java. util. Random class can be constructed in either of the following ways: With or without seeds

Without seeds:
This method will return random numbers with different running results

Public class randomtest {
Public static void main (string [] ARGs ){
Java. util. Random r = new java. util. Random ();
For (INT I = 0; I <10; I ++ ){
System. Out. println (R. nextint ());
}

}
Seed:
In this way, no matter how many times the program runs, the returned results are the same.

Public static void main (string [] ARGs ){
Java. util. Random r = new java. util. Random (10 );
For (INT I = 0; I <10; I ++ ){
System. Out. println (R. nextint ());
}
}

The difference between the two methods is that

(1) first open Java Doc and we will see the description of the random class:

An instance of this type is used to generate a pseudo-random number stream. This class uses a 48-bit seed, which can be modified using a linear same formula (see the art of computer programming in Donald knuth, volume 2, section 3.2.1 ).

If two random instances are created with the same seed, the same method call sequence is performed for each instance. they generate and return the same numerical sequence. To ensure the implementation of this feature, we specify a specific algorithm for the class random. To ensure full portability of Java code, Java implementation must allow the class random to use all the algorithms shown here. However, to allow sub-classes of the random class to use other algorithms, you only need to comply with the common protocols of all methods.

Java Doc has clearly explained the random class and our tests have also proved this.

(2) If the number of seeds is not provided, the number of seeds in the random instance will be the number of milliseconds in the current time. You can use system. currenttimemillis () to obtain the number of milliseconds in the current time. Open the source code of JDK and we can see this clearly.

/**
* Creates a new random number generator. Its seed is initialized
* A value based on the current time:
* Random () {This (system. currenttimemillis ();} java. Lang. System # currenttimemillis ()
*/
Public random () {This (system. currenttimemillis ());}


In addition:

Description of the nextint () and nextint (int n) Methods of the random object:

Int nextint ()
Returns the next pseudo-random number, which is the int value uniformly distributed in the sequence of the random number generator.
Int nextint (int n)
Returns a pseudo-random number, which is an int value that is obtained from the sequence of the random number generator and evenly distributed between 0 (inclusive) and the specified value (excluded.

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.