Today, another netizen asked me how JavaScript generates a specified range of numerical random numbers. Math.random () This method is believed to be known to generate random numbers. However, the general reference manual does not show how to use this method to generate random numbers within a specified range. This time I'll give you a detailed introduction to Math.random () and how to use it to generate random numbers within the scope of the development.
Basic tutorials See here
Http://www.jb51.net/w3school/js/jsref_random.htm
After reading the tutorial, you should know the basic usage of the Math.random () method.
Rounding with parseint (), Math.floor () or Math.ceil ()
We see that the direct use of the Math.random () method produces a number less than 1, so:
The result is a random number less than 5. And what we usually want is an integer between 0-5, so we need to round up the resulting results and get the integers we expect. parseint (), Math.floor () and Math.ceil () can all be rounded up.
var randomnum = Math.random () *5;
alert (randomnum); 2.9045290905811183
alert (parseint (randomnum,10));//2
alert (Math.floor (Randomnum));//2
alert ( Math.ceil (Randomnum)); 3
As we can see from the test code, the effect of the parseint () and Math.floor () is the same, and all the parts of the integer are taken down. So parseint (Math.random () *5,10) and Math.floor (Math.random () *5) are random numbers between 0-4 generated, Math.ceil (Math.random () *5) is the number of random numbers between 1-5 generated.
Generate a specified range of numeric random numbers
So, if you want to generate random numbers of 1 to any value, the formula is this:
Max-Desired Maximum value
parseint (Math.random () *max,10) +1;
Math.floor (Math.random () *max) +1;
Math.ceil (Math.random () *max);
If you want to generate random numbers of 0 to any value, the formula is this:
Max-expected maximum value
parseint (Math.random () * (max+1), ten);
Math.floor (Math.random () * (max+1));
If you want to generate random numbers of arbitrary values to any value, the formula is this:
Max-expected maximum
/min-Expected minimum value
parseint (Math.random () * (max-min+1) +min,10);
Math.floor (Math.random () * (max-min+1) +min);
So let's look at some other ways that JavaScript generates random numbers.
1. Use the built-in random number occurrence method: (just said, here is a brief description)
Math.random (); This method produces a floating-point number between 0 and 1.
Math.floor (Math.random () *10+1);//1-10
Math.floor (Math.random () *24);//0-23
2. Based on time, can also produce random numbers:
Copy Code code as follows:
var now=new Date ();
var number = Now.getseconds (); This will result in a 0 to 59 integer based on the current time.
var now=new Date ();
var number = Now.getseconds ()%43; This will result in a 0 to 42 integer based on the current time.
3. A fairly excellent random number generator program that can be applied in many fields.
<script language= "JavaScript" ><!--
//The Randomizer 1.3 (C) 1997 by Paul Houle (HOULE@MSC.CORNELL.E DU)
//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 of the randomizer. -->
</script>
Let's take a look at 2 more specific examples,
The first method is implemented by rewriting the Math.random method, and the second method is implemented from a C, which can achieve programming purposes.
Example one:
<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);
document.write (' <br/> ');
document.write (Math.random (3,10));
document.write (' <br/> ');
document.write (Math.random (2,10,4));
</script>
Example two:
<script type= "Text/javascript" >
var random = (function () {
var = 1, low = 1 ^ 0x49616e42;
var shuffle = function (seed) {high
= seed;
Low = seed ^ 0x49616e42;
}
return function () {
var a = new Date ()-0
Shuffle (a);
High = [High <<] + (high >>);
High + = low;
Low = = high;
return high;
}
) ();
Alert (random ());
</script>
Well, through these examples, we should have a corresponding understanding of JavaScript generated random numbers, I hope this article can give you some inspiration.