在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 相关文章推荐
解决AJAX中跨域访问出现'没有权限'的错误
Aug 20 Javascript
JavaScript之HTMLCollection接口代码
Apr 27 Javascript
简单的Jquery遮罩层代码实例
Nov 14 Javascript
Jquery对select的增、删、改、查操作
Feb 06 Javascript
Angular 中 select指令用法详解
Sep 29 Javascript
浅谈js for循环输出i为同一值的问题
Mar 01 Javascript
利用imgareaselect辅助后台实现图片上传裁剪
Mar 02 Javascript
Angularjs 与 bower安装和使用详解
May 11 Javascript
基于easyui checkbox 的一些操作处理方法
Jul 10 Javascript
js实现日期显示的一些操作(实例讲解)
Jul 27 Javascript
微信小程序自定义多列选择器使用详解
Jun 21 Javascript
Vue实现背景更换颜色操作
Jul 17 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全排列递归算法代码
2012/10/09 PHP
CodeIgniter中使用Smarty3基本配置
2015/06/29 PHP
Laravel 微信小程序后端实现用户登录的示例代码
2019/11/26 PHP
网易JS面试题与Javascript词法作用域说明
2010/11/09 Javascript
JavaScript类型转换方法及需要注意的问题小结(挺全面)
2010/11/11 Javascript
关于hashchangebroker和statehashable的补充文档
2011/08/08 Javascript
JS中如何设置readOnly的值
2013/12/25 Javascript
JavaScript Promise 用法
2016/06/14 Javascript
Vue概念及常见命令介绍(1)
2016/12/08 Javascript
深入理解AngularJs-scope的脏检查(一)
2017/06/19 Javascript
vue实现手机号码抽奖上下滚动动画示例
2017/10/18 Javascript
浅谈Vue网络请求之interceptors实际应用
2018/02/28 Javascript
vue底部加载更多的实例代码
2018/06/29 Javascript
vue构建动态表单的方法示例
2018/09/22 Javascript
layDate日期控件使用方法详解
2018/11/15 Javascript
vue实现文字加密功能
2019/09/27 Javascript
js实现课堂随机点名系统
2019/11/21 Javascript
JavaScript, select标签元素左右移动功能实现
2020/05/14 Javascript
python 线程的暂停, 恢复, 退出详解及实例
2016/12/06 Python
Python实现多线程HTTP下载器示例
2017/02/11 Python
Django视图和URL配置详解
2018/01/31 Python
python学生信息管理系统
2018/03/13 Python
Python+threading模块对单个接口进行并发测试
2019/06/25 Python
解决pycharm不能自动补全第三方库的函数和属性问题
2020/03/12 Python
python使用nibabel和sitk读取保存nii.gz文件实例
2020/07/01 Python
python代码能做成软件吗
2020/07/24 Python
CSS3 实现侧边栏展开收起动画
2014/12/22 HTML / CSS
制药工程专业毕业生推荐信
2013/12/24 职场文书
模具数控专业自荐信
2014/01/27 职场文书
12月小学生校园广播稿
2014/02/04 职场文书
护士工作失误检讨书
2014/09/14 职场文书
全国法制宣传日活动总结2014
2014/11/01 职场文书
大学班干部竞选稿
2015/11/20 职场文书
导游词之重庆钓鱼城
2019/09/19 职场文书
详解盒子端CSS动画性能提升
2021/05/24 HTML / CSS
Android 中的类文件和类加载器详情
2022/06/05 Java/Android