使用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 相关文章推荐
ajax上传时参数提交不更新等相关问题
Dec 11 Javascript
html a标签-超链接中confirm方法使用介绍
Jan 04 Javascript
浅析document.createDocumentFragment()与js效率
Jul 08 Javascript
js实现带圆角的两级导航菜单效果代码
Aug 24 Javascript
分享我的jquery实现下拉菜单心的
Nov 29 Javascript
深入探讨Vue.js组件和组件通信
Sep 12 Javascript
jquery 手势密码插件
Mar 17 Javascript
利用Vue2.x开发实现JSON树的方法
Jan 04 Javascript
vue渲染时闪烁{{}}的问题及解决方法
Mar 28 Javascript
vue与原生app的对接交互的方法(混合开发)
Nov 28 Javascript
JS div匀速移动动画与变速移动动画代码实例
Mar 26 Javascript
微信小程序webSocket的使用方法
Feb 20 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的宝库目录--PEAR
2006/10/09 PHP
在php MYSQL中插入当前时间
2008/04/06 PHP
smarty的保留变量问题
2008/10/23 PHP
php 操作调试的方法
2012/07/12 PHP
php图片处理函数获取类型及扩展名实例
2014/11/19 PHP
CheckBox 如何实现全选?
2006/06/23 Javascript
关于Blog顶部的滚动导航条代码
2006/09/25 Javascript
使用jQuery fancybox插件打造一个实用的数据传输模态弹出窗体
2013/01/15 Javascript
JSCode all of Brower 全局屏蔽网页右键功能 具体实现
2013/06/05 Javascript
JavaScript的Date()方法使用详解
2015/06/09 Javascript
jquery中live()方法和bind()方法区别分析
2016/06/23 Javascript
jq给页面添加覆盖层遮罩的实例
2017/02/16 Javascript
js学使用setTimeout实现轮循动画
2017/07/17 Javascript
angularjs中$http异步上传Excel文件方法
2018/02/23 Javascript
如何用RxJS实现Redux Form
2018/12/29 Javascript
微信小程序基于picker实现级联菜单
2019/02/15 Javascript
vue中的面包屑导航组件实例代码
2019/07/01 Javascript
node.js实现带进度条的多文件上传
2020/03/27 Javascript
html2canvas属性和使用方法以及如何使用html2canvas将HTML内容写入Canvas生成图片
2020/01/12 Javascript
node.js通过url读取文件
2020/10/16 Javascript
用Python写飞机大战游戏之pygame入门(4):获取鼠标的位置及运动
2015/11/05 Python
Python复数属性和方法运算操作示例
2017/07/21 Python
Scrapy框架CrawlSpiders的介绍以及使用详解
2017/11/29 Python
python SSH模块登录,远程机执行shell命令实例解析
2018/01/12 Python
Flask框架Flask-Login用法分析
2018/07/23 Python
Python 保持登录状态进行接口测试的方法示例
2019/08/06 Python
详解canvas drawImage()方法绘制图片不显示的问题
2018/10/08 HTML / CSS
解决H5的a标签的download属性下载service上的文件出现跨域问题
2019/07/16 HTML / CSS
Trunki英国官网:儿童坐骑式行李箱
2017/05/30 全球购物
职业技术学校毕业生推荐信
2013/12/03 职场文书
中学生班主任评语
2014/01/30 职场文书
年检委托书
2014/08/30 职场文书
青年志愿者服务活动总结
2015/05/06 职场文书
会议主持词开场白
2015/05/28 职场文书
学生会自荐信
2019/05/16 职场文书
教你用Python+selenium搭建自动化测试环境
2021/06/18 Python