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


Posted in Javascript onOctober 21, 2015

今天有朋友向我请教: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的使用是不是明白了,希望本篇文章能够给您带来帮助,谢谢!

Javascript 相关文章推荐
javascript入门·图片对象(无刷新变换图片)\滚动图像
Oct 01 Javascript
不使用XMLHttpRequest实现异步加载 Iframe和script
Oct 29 Javascript
JS对img进行操作(换图片/切图/轮换/停止)
Apr 17 Javascript
不同Jquery版本引发的问题解决
Oct 14 Javascript
微信内置浏览器私有接口WeixinJSBridge介绍
May 25 Javascript
Bootstrap表单使用方法详解
Feb 17 Javascript
ES6新数据结构Map功能与用法示例
Mar 31 Javascript
vue如何获取点击事件源的方法
Aug 10 Javascript
js定时器实现倒计时效果
Nov 05 Javascript
vue裁切预览组件功能的实现步骤
May 04 Javascript
Vue.js子组件向父组件通信的方法实例代码详解
Dec 10 Javascript
详解Vue-cli3 项目在安卓低版本系统和IE上白屏问题解决
Apr 14 Javascript
JS+CSS实现的经典圆角下拉菜单效果代码
Oct 21 #Javascript
chrome调试javascript详解
Oct 21 #Javascript
Javascript 计算字符串在localStorage中所占字节数
Oct 21 #Javascript
深入解析JavaScript的闭包机制
Oct 20 #Javascript
JavaScript中字面量与函数的基本使用知识
Oct 20 #Javascript
JavaScript基本的输出和嵌入式写法教程
Oct 20 #Javascript
javascript省市级联功能实现方法实例详解
Oct 20 #Javascript
You might like
MySql中正则表达式的使用方法描述
2008/07/30 PHP
如何使用PHP获取指定日期所在月的开始日期与结束日期
2013/08/01 PHP
php实现在服务器端调整图片大小的方法
2015/06/16 PHP
WordPress中&quot;无法将上传的文件移动至&quot;错误的解决方法
2015/07/01 PHP
制作个性化的WordPress登陆界面的实例教程
2016/05/21 PHP
比较简单的异步加载JS文件的代码
2009/07/18 Javascript
JavaScript 替换Html标签实现代码
2009/10/14 Javascript
react-native使用react-navigation进行页面跳转导航的示例
2017/09/07 Javascript
jquery实现侧边栏左右伸缩效果的示例
2017/12/19 jQuery
js最简单的双向绑定实例讲解
2018/01/02 Javascript
微信小程序实现image组件图片自适应宽度比例显示的方法
2018/01/16 Javascript
解决vue keep-alive 数据更新的问题
2018/09/21 Javascript
ng-repeat指令在迭代对象时的去重方法
2018/10/02 Javascript
Electron 打包问题:electron-builder 下载各种依赖出错(推荐)
2020/07/09 Javascript
Element图表初始大小及窗口自适应实现
2020/07/10 Javascript
微信小程序:报错(in promise) MiniProgramError
2020/10/30 Javascript
[00:32]DOTA2上海特级锦标赛 Ehome战队宣传片
2016/03/03 DOTA
[01:08:00]Fnatic vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python实现的弹球小游戏示例
2017/08/01 Python
AI人工智能 Python实现人机对话
2017/11/13 Python
Python数据结构与算法之二叉树结构定义与遍历方法详解
2017/12/12 Python
TensorFlow利用saver保存和提取参数的实例
2018/07/26 Python
PyCharm鼠标右键不显示Run unittest的解决方法
2018/11/30 Python
Apache部署Django项目图文详解
2019/07/30 Python
解析pip安装第三方库但PyCharm中却无法识别的问题及PyCharm安装第三方库的方法教程
2020/03/10 Python
利用Python将多张图片合成视频的实现
2020/11/23 Python
护士个人自我鉴定
2014/03/24 职场文书
入股协议书范本
2014/04/14 职场文书
企业安全生产责任书
2014/04/14 职场文书
村级换届选举方案
2014/05/10 职场文书
县委务虚会发言材料
2014/10/20 职场文书
事业单位个人查摆问题及整改措施
2014/10/28 职场文书
高中生自我评价范文2015
2015/03/03 职场文书
离婚被告答辩状
2015/05/22 职场文书
SSM项目使用拦截器实现登录验证功能
2022/01/22 Java/Android
MySQL如何快速创建800w条测试数据表
2022/03/17 MySQL