Javascript random number generation method summary, javascript Random Number

Source: Internet
Author: User

Javascript random number generation method summary, javascript Random Number

Today, some netizens asked me how to generate a random number in the specified range in JavaScript. Math. random () is used to generate random numbers. However, the general reference manual does not explain how to use this method to generate random numbers within a specified range. This time I will introduce Math. random () in detail and how to use it to generate random numbers within the specified range.

For the basic tutorial, see here

Http://www.bkjia.com/w3school/js/jsref_random.htm

After reading the tutorial, you should know the basic usage of the Math. random () method.

Rounding data using parseInt (), Math. floor (), or Math. ceil ()

We can see that the Math. random () method is used directly to generate a number smaller than 1, so:

Math.random()*5

The result is a random number less than 5. What we usually want to get is an integer between 0 and 5, so we need to round the result to get the expected integer. ParseInt (), Math. floor (), and Math. ceil () can all play a rounding role.

var randomNum = Math.random()*5;alert(randomNum); // 2.9045290905811183 alert(parseInt(randomNum,10)); // 2alert(Math.floor(randomNum)); // 2alert(Math.ceil(randomNum)); // 3

From the test code, we can see that the effects of parseInt () and Math. floor () are the same, all of which are down integers. So parseInt (Math. random () * 5, 10) and Math. floor (Math. random () * 5) is a random number between 0 and 4, Math. ceil (Math. random () * 5) is a random number between 1 and 5.

Generate random numbers within a specified range

Therefore, if you want to generate a random number ranging from 1 to any value, the formula is as follows:

// Max-the expected maximum value parseInt (Math. random () * max, 10) + 1; Math. floor (Math. random () * max) + 1; Math. ceil (Math. random () * max );

If you want to generate a random number ranging from 0 to any value, the formula is as follows:

// Max-the expected maximum value parseInt (Math. random () * (max + 1), 10); Math. floor (Math. random () * (max + 1 ));

If you want to generate a random number from any value to any value, the formula is as follows:

// Max-the expected maximum value // min-the expected minimum value parseInt (Math. random () * (max-min + 1) + min, 10); Math. floor (Math. random () * (max-min + 1) + min );

Next let's take a look at other methods for generating random numbers using javascript.

1. Use the built-in Random Number Generation Method: (as mentioned earlier, here is a brief description)

Math. random (); // This method generates a floating point number between 0 and 1. Math. floor (Math. random () * 10 + 1); // 1-10Math.floor (Math. random () * 24); // 0-23

2. Based on Time, random numbers can also be generated:
Copy codeThe Code is as follows: var now = new Date ();
Var number = now. getSeconds (); // This generates an integer ranging from 0 to 59 based on the current time.

Var now = new Date ();
Var number = now. getSeconds () % 43; // This generates an integer ranging from 0 to 42 based on the current time.

3. A fairly good random number generator program can be used in many fields.

<script language="JavaScript"><!--// The Central Randomizer 1.3 (C) 1997 by Paul Houle (houle@msc.cornell.edu)// See: http://www.msc.cornell.edu/~houle/javascript/randomizer.html rnd.today=new Date();rnd.seed=rnd.today.getTime();function rnd() {    rnd.seed = (rnd.seed*9301+49297) % 233280;    return rnd.seed/(233280.0);};function rand(number) {    return Math.ceil(rnd()*number);};// end central randomizer. --></script>

Let's take a look at two specific instances,

The first method is implemented by rewriting the Math. random method, and the second method is changed from a C implementation to implement programming.

Instance 1:

<script language="javascript">  var native_random = Math.random;Math.random = function(min, max, exact) {if (arguments.length === 0) {return native_random();} else if (arguments.length === 1) {max = min;min = 0;}var range = min + (native_random()*(max - min));return exact === void(0) ? Math.round(range) : range.toFixed(exact);};document.write(Math.random());document.write('<br />');document.write(Math.random(10));document.write('<br />');document.write(Math.random(3,10));document.write('<br />');document.write(Math.random(2,10,4));</script>

Example 2:

<script type="text/javascript">var random = (function(){var high = 1, low = 1 ^ 0x49616E42;var shuffle = function(seed){high = seed;low = seed ^ 0x49616E42;}return function(){  var a = new Date()-0   shuffle(a);  high = (high << 16) + (high >> 16);  high += low;  low += high;   return high; }})(); alert( random() );</script>

Well, through these examples, you should have a corresponding understanding of javascript to generate random numbers. I hope this article will give you some inspiration.

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.