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.