在javascript中随机数 math random如何生成指定范围数值的随机数

今天有朋友向我请教:JavaScript 怎么生成指定范围数值随机数。Math.random() 这个方法相信大家都知道,是用来生成随机数的。不过一般的参考手册时却没有说明如何用这个方法来生成指定范围内的随机数。这次我就来详细的介绍一下Math.random(),以及如何用它来生成制定范围内的随机数。

w3school的random()教程

定义和用法

random() 方法可返回介于 0 ~ 1 之间的一个随机数。

语法

Math.random()

返回值

0.0 ~ 1.0 之间的一个伪随机数。

实例

在本例中,我们将取得介于 0 到 1 之间的一个随机数:

<script type="text/javascript">
document.write(Math.random());
</script>
// 输出:
0.15246391076246546

如何生成指定范围值的随机数

看完w3school的教程,应该知道Math.random()方法的基本用法了。

利用 parseInt()、Math.floor() 或者 Math.ceil()进行四舍五入处理

我们看到,直接使用Math.random()方法,生成的是一个小于1的数,所以:

Math.random()*5

得到的结果是一个小于5的随机数。而我们通常希望得到的是0-5之间的整数,所以我们需要对得到的结果四舍五入处理一下,从而得到我们期望的整数。parseInt()、Math.floor()和Math.ceil()都可以起到四舍五入的作用。

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

由测试的代码我们可以看到,parseInt()和Math.floor()的效果是一样的,都是向下取整数部分。所以parseInt(Math.random()*5,10)和Math.floor(Math.random()*5)都是生成的0-4之间的随机数,Math.ceil(Math.random()*5)则是生成的1-5之间的随机数。
生成指定范围数值随机数

所以,如果你希望生成1到任意值的随机数,公式就是这样的:

// max - 期望的最大值
parseInt(Math.random()*max,10)+1;
Math.floor(Math.random()*max)+1;
Math.ceil(Math.random()*max);

如果你希望生成0到任意值的随机数,公式就是这样的:

// max - 期望的最大值
parseInt(Math.random()*(max+1),10);
Math.floor(Math.random()*(max+1));
如果你希望生成任意值到任意值的随机数,公式就是这样的:
// max - 期望的最大值
// min - 期望的最小值
parseInt(Math.random()*(max-min+1)+min,10);
Math.floor(Math.random()*(max-min+1)+min);

看完本篇是不是收获颇多啊,对于随机数 math random的使用是不是明白了,希望本篇文章能够给您带来帮助,谢谢!

(0)

相关推荐

  • javascript根据时间生成m位随机数最大13位

    根据时间生成m位随机数,最大13位随机数,并且不能保证首位不为0 function ran(m) { m = m > 13 ? 13 : m; var num = new Date().getTime(); return num.toString().substring(13 - m); } console.log(ran(5)); 根据Math的random函数生成的随机数截取m位,生成的随机数最大不超过16位,能保证首位不为0 function rand(m) { m = m > 16 ?

  • JS生成不重复的随机数组的简单实例

    JS生成不重复的随机数组的简单实例 //获取数组中的随机数 //HF.Math.RandomNumbers是前缀,可以自己定义,主要看逻辑代码 HF.Math.RandomNumbers = function (startNum, endNum, count, repeat) { var ret = []; if (repeat) { for (var i = 0; i < count; i++) { ret[i] = HF.Math.Random(startNum, endNum); } re

  • js生成随机数的方法实例

    js生成随机数主要用到了内置的Math对象的random()方法.用法如:Math.random().它返回的是一个 0 ~ 1 之间的随机数.有了这么一个方法,那生成任意随机数就好理解了.比如实际中我们可能会有如下的需要: (1)生成一个 0 - 100 之间的随机整数,那么则可以: parseInt(100*Math.random()); 注意:因为Math.random()的返回值是包括0和1的,所以这里是有生成0和100的可能性的. (2)生成一个从 m - n 之间的随机整数,例如要生

  • javascript生成不重复的随机数

    题目来源:在慕课学习jQuery过程中一道测试题. 初始时:<ul>元素中仅显示5个<li>元素,其中包含还包括最后一个<li>元素,<a>元素中的显示"更多"字符. 当点击"更多"链接时,自身内容变为"简化",同时,<ul>元素中显示全部的<li>元素. 当点击"简化"链接时,自身内容变为"更多",同时,<ul>元素中仅显

  • 基于javascript实现彩票随机数生成(升级版)

    本文实例讲解了JavaScript 实现彩票中随机数组的获取详细代码,分享给大家供大家参考,具体内容如下 效果图: 具体代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Math.random方法彩票随机数的生成-升级版</title> <style type="text/css&q

  • JS简单生成两个数字之间随机数的方法

    本文实例讲述了JS简单生成两个数字之间随机数的方法.分享给大家供大家参考,具体如下: 运行效果截图如下: 完整代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xh

  • javascript生成随机数方法汇总

    今天有又网友问到我 JavaScript 怎么生成指定范围数值随机数.Math.random() 这个方法相信大家都知道,是用来生成随机数的.不过一般的参考手册时却没有说明如何用这个方法来生成指定范围内的随机数.这次我就来详细的介绍一下Math.random(),以及如何用它来生成制定范围内的随机数. 基础教程请看这里 http://www.jb51.net/w3school/js/jsref_random.htm 看完教程,应该知道Math.random()方法的基本用法了. 利用 parse

  • JS实现的生成随机数的4个函数分享

    第一种方法 复制代码 代码如下: /* *@desc:生成随机字符串 *@remark:toString方法可以接收一个基数作为参数的原理,这个基数从2到36封顶.如果不指定,默认基数是10进制 */ function generateRandomAlphaNum(len) {     var rdmString = "";     for (; rdmString.length < len; rdmString += Math.random().toString(36).sub

  • JS简单随机数生成方法

    本文实例讲述了JS简单随机数生成方法.分享给大家供大家参考,具体如下: <!doctype html> <html> <head> <meta charset="utf-8"> <title>随机数</title> </head> <body> <script type="text/javascript"> function Randnum(value){ v

  • JavaScript简单生成 N~M 之间随机数的方法

    本文实例讲述了JavaScript简单生成 N~M 之间随机数的方法.分享给大家供大家参考,具体如下: getRandom.js: /** * Created with JetBrains PhpStorm. * User: lee * To change this template use File | Settings | File Templates. */ //获取一个随机数,在max,min之间 //max 需大于 min //如果输入 10,则产生 0~9 的数 //如果输入 10,

  • 基于javascript实现彩票随机数生成(简单版)

    本文实例讲解了JavaScript 实现彩票中随机数组的获取详细代码,分享给大家供大家参考,具体内容如下 效果图: 具体代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Math.random方法彩票随机数的生成</title> </head> <body> <!--

  • js生成随机数(指定范围)的实例代码

    1.随机生成4位数的随机数 <script language="javascript"> /** * 随机生成4位的随机数 * http://www.yulu.jb51.net */ document.write(parseInt(10*Math.random())); //输出0-10之间的随机整数 document.write(Math.floor(Math.random()*10+1)); //输出1-10之间的随机整数 function RndNum(n){ var

随机推荐