使用js Math.random()函数生成n到m间的随机数字


Posted in Javascript onOctober 09, 2014

摘要:

本文讲解如何使用js生成n到m间的随机数字,主要目的是为后期的js生成验证码做准备。

Math.random()函数返回0和1之间的伪随机数,可能为0,但总是小于1,[0,1)

生成n-m,包含n但不包含m的整数:

第一步算出 m-n的值,假设等于w

第二步Math.random()*w

第三步Math.random()*w+n

第四步parseInt(Math.random()*w+n, 10)

生成n-m,不包含n但包含m的整数:​

第一步算出 m-n的值,假设等于w

第二步Math.random()*w

第三步Math.random()*w+n

第四步Math.floor(Math.random()*w+n) + 1

生成n-m,不包含n和m的整数:

第一步算出 m-n-2的值,假设等于w

第二步Math.random()*w

第三步Math.random()*w+n +1

第四步Math.round(Math.random()*w+n+1) 或者 Math.ceil(Math.random()*w+n+1)

生成n-m,包含n和m的随机数:

第一步算出 m-n的值,假设等于w

第二步Math.random()*w

第三步Math.random()*w+n

第四步Math.round(Math.random()*w+n) 或者 Math.ceil(Math.random()*w+n)

例子:

生成800-1500的随机整数,包含800但不包含1500

1500-800 = 700

Math.random()*700

var num = Math.random()*700 + 800;

num = parseInt(num, 10);

只需要简单的四步就可以完成。

补充:

Math.ceil() 返回大于等于数字参数的最小整数(取整函数),对数字进行上舍入

Math.floor() 返回小于等于数字参数的最大整数,对数字进行下舍入

Math.round() 返回数字最接近的整数,四舍五入

Javascript 相关文章推荐
JS检测图片大小的实例
Aug 21 Javascript
javascript 判断字符串是否包含某字符串及indexOf使用示例
Oct 18 Javascript
javascript操作html控件实例(javascript添加html)
Dec 02 Javascript
javascript中的self和this用法小结
Feb 08 Javascript
原创jQuery弹出层插件分享
Apr 02 Javascript
Bootstrap基本组件学习笔记之缩略图(13)
Dec 08 Javascript
JavaScript实现快速排序的方法分析
Jan 10 Javascript
使用Vue实现图片上传的三种方式
Jul 17 Javascript
Angular5集成eventbus的示例代码
Jul 19 Javascript
详解ESLint在Vue中的使用小结
Oct 15 Javascript
Vue渲染过程浅析
Mar 14 Javascript
JS图片懒加载技术实现过程解析
Jul 27 Javascript
分享一款基于jQuery的视频播放插件
Oct 09 #Javascript
使用jQuery.wechat构建微信WEB应用
Oct 09 #Javascript
使用jQuery将多条数据插入模态框的实现代码
Oct 08 #Javascript
get(0).tagName获得作用标签示例代码
Oct 08 #Javascript
一个css与js结合的下拉菜单支持主流浏览器
Oct 08 #Javascript
Javascript获取当前日期的农历日期代码
Oct 08 #Javascript
javascript中通过arguments参数伪装方法重载
Oct 08 #Javascript
You might like
社区(php&&mysql)六
2006/10/09 PHP
php 解压rar文件及zip文件的方法
2014/05/05 PHP
教你识别简单的免查杀PHP后门
2015/09/13 PHP
详解PHP的Yii框架中日志的相关配置及使用
2015/12/08 PHP
php中使用GD库做验证码
2016/03/31 PHP
PHP中的print_r 与 var_dump 输出数组
2016/06/13 PHP
Extjs中常用表单介绍与应用
2010/06/07 Javascript
深入理解JavaScript系列(9) 根本没有“JSON对象”这回事!
2012/01/15 Javascript
js实现单一html页面两套css切换代码
2013/04/11 Javascript
JavaScript中检测变量是否存在遇到的一些问题
2013/11/11 Javascript
javascript动态向网页中添加表格实现代码
2014/02/19 Javascript
JS将光标聚焦在文本最后的实现代码
2014/03/28 Javascript
jQuery常用数据处理方法小结
2015/02/20 Javascript
配置Grunt的Task时通配符支持和动态生成文件名问题
2015/09/06 Javascript
jQuery实现的超简单点赞效果实例分析
2015/12/31 Javascript
Javascript 详解封装from表单数据为json串进行ajax提交
2017/03/29 Javascript
vue实现前进刷新后退不刷新效果
2018/01/26 Javascript
Angular中使用better-scroll插件的方法
2018/03/27 Javascript
javascript如何实现create方法
2019/11/04 Javascript
vue使用echarts图表自适应的几种解决方案
2020/12/04 Vue.js
Python 爬取携程所有机票的实例代码
2018/06/11 Python
超简单使用Python换脸实例
2019/03/27 Python
使用Pyinstaller转换.py文件为.exe可执行程序过程详解
2019/08/06 Python
Win10下python 2.7与python 3.7双环境安装教程图解
2019/10/12 Python
Tensorflow加载Vgg预训练模型操作
2020/05/26 Python
css3的过滤效果简单实例
2016/08/03 HTML / CSS
使用HTML5里的classList操作CSS类
2016/06/28 HTML / CSS
英国领先的NHS批准的在线药店:Pharmacy2U
2017/01/06 全球购物
结对共建工作方案
2014/06/02 职场文书
美术专业自荐信
2014/07/07 职场文书
关于运动会广播稿200字
2014/10/08 职场文书
世界红十字日活动总结
2015/02/10 职场文书
《最后一头战象》教学反思
2016/02/16 职场文书
Python趣味挑战之用pygame实现简单的金币旋转效果
2021/05/31 Python
解决SpringBoot跨域的三种方式
2021/06/26 Java/Android
mysql函数全面总结
2021/11/11 MySQL