在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 相关文章推荐
JQuery 插件模板 制作jquery插件的朋友可以参考下
Mar 17 Javascript
读jQuery之五(取DOM元素)
Jun 20 Javascript
浏览器打开层自动缓慢展开收缩实例代码
Jul 04 Javascript
Javascript遍历Html Table示例(包括内容和属性值)
Jul 08 Javascript
浅析JavaScript事件和方法
Feb 28 Javascript
通过伪协议解决父页面与iframe页面通信的问题
Apr 05 Javascript
AngularJS入门教程之过滤器用法示例
Nov 02 Javascript
bootstrap模态框垂直居中效果
Dec 03 Javascript
学习使用Bootstrap页面排版样式
May 11 Javascript
详解关于react-redux中的connect用法介绍及原理解析
Sep 11 Javascript
详解ES6 Symbol 的用途
Oct 14 Javascript
js实现图片跟随鼠标移动效果
Oct 16 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
用php来检测proxy
2006/10/09 PHP
php 下载保存文件保存到本地的两种实现方法
2013/08/12 PHP
php异常处理方法实例汇总
2015/06/24 PHP
项目实践之javascript技巧
2007/12/06 Javascript
iframe 上下滚动条如何默认在下方实现原理
2012/12/10 Javascript
js图片向右一张张滚动效果实例代码
2013/11/23 Javascript
javascript修改表格背景色实例代码分享
2013/12/10 Javascript
jQery使网页在显示器上居中显示适用于任何分辨率
2014/06/09 Javascript
js设置控件的隐藏与显示的两种方法
2014/08/21 Javascript
JS获取当前网页大小以及屏幕分辨率等
2014/09/05 Javascript
javascript实现判断鼠标的状态
2015/07/10 Javascript
AngularJS基础 ng-cut 指令介绍及简单示例
2016/08/01 Javascript
jQuery文本框得到与失去焦点动态改变样式效果
2016/09/08 Javascript
Bootstrap精简教程中秋大放送
2016/09/15 Javascript
浅谈jQuery中事情的动态绑定
2017/02/12 Javascript
JS判断两个对象内容是否相等的方法示例
2017/04/10 Javascript
微信小程序实现自上而下字幕滚动
2018/07/14 Javascript
跟混乱的页面弹窗说再见
2019/04/11 Javascript
JS定义函数的几种常用方法小结
2019/05/23 Javascript
在vue和element-ui的table中实现分页复选功能
2019/12/04 Javascript
vue实现鼠标移过出现下拉二级菜单功能
2019/12/12 Javascript
JavaScript实现简易计算器小功能
2020/10/22 Javascript
Javascript实现关闭广告效果
2021/01/29 Javascript
python中的内置函数max()和min()及mas()函数的高级用法
2018/03/29 Python
python画一个玫瑰和一个爱心
2020/08/18 Python
python调用百度语音识别api
2018/08/30 Python
朴素贝叶斯Python实例及解析
2018/11/19 Python
5款Python程序员高频使用开发工具推荐
2019/04/10 Python
大学生创业计划书的用途
2014/01/08 职场文书
优秀教师先进事迹
2014/01/22 职场文书
试用期员工工作自我评价
2014/09/10 职场文书
合作合同协议书范本
2015/01/27 职场文书
2015年国庆节新闻稿
2015/07/18 职场文书
Python 语言实现六大查找算法
2021/06/30 Python
Python中Schedule模块使用详解 周期任务神器
2022/04/19 Python
python计算列表元素与乘积详情
2022/08/05 Python