使用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 相关文章推荐
基于jQuery捕获超链接事件进行局部刷新代码
May 10 Javascript
JS定时关闭窗口的实例
May 22 Javascript
地址栏传递中文参数乱码在js里用escape转码
Aug 28 Javascript
JavaScript实现按Ctrl键打开新页面
Sep 04 Javascript
js正则表达式中exec用法实例
Jul 23 Javascript
使用jQuery制作Web页面遮罩层插件的实例教程
May 26 Javascript
EasyUI 结合JS导出Excel文件的实现方法
Nov 10 Javascript
jQuery实现表单动态加减、ajax表单提交功能
Jun 08 jQuery
JS模拟浏览器实现全局搜索功能
Sep 11 Javascript
vue路由跳转传递参数的方式总结
May 10 Javascript
微信小程序点击滚动到指定位置的实现
May 22 Javascript
JS时间戳与日期格式互相转换的简单方法示例
Jan 30 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实现水仙花数的4个示例分享
2014/04/08 PHP
老生常谈PHP面向对象之标识映射
2017/06/21 PHP
laravel 创建命令行命令的图文教程
2019/10/23 PHP
javascript 打印页面代码
2009/03/24 Javascript
parseInt parseFloat js字符串转换数字
2010/08/01 Javascript
JavaScript 学习历程和心得分享
2010/12/12 Javascript
一些javascript一些题目的解析
2010/12/25 Javascript
使用伪命名空间封装保护独自创建的对象方法
2016/08/04 Javascript
Jquery删除css属性的简单方法
2016/12/04 Javascript
Angular动画实现的2种方式以及添加购物车动画实例代码
2018/08/09 Javascript
基于Nodejs的Tcp封包和解包的理解
2018/09/19 NodeJs
解决angularjs service中依赖注入$scope报错的问题
2018/10/02 Javascript
Vue CLI3基础学习之pages构建多页应用
2019/06/02 Javascript
微信小程序class封装http代码实例
2019/08/24 Javascript
全面解析Vue中的$nextTick
2020/12/24 Vue.js
django+mysql的使用示例
2018/11/23 Python
python读写csv文件方法详细总结
2019/07/05 Python
python自动循环定时开关机(非重启)测试
2019/08/26 Python
python 使用递归回溯完美解决八皇后的问题
2020/02/26 Python
Django 删除upload_to文件的步骤
2020/03/30 Python
Python动态导入模块:__import__、importlib、动态导入的使用场景实例分析
2020/03/30 Python
纯CSS改变webkit内核浏览器的滚动条样式
2014/04/17 HTML / CSS
Sperry澳大利亚官网:源自美国帆船鞋创始品牌
2019/07/29 全球购物
Athleta官网:购买女士瑜伽服、技术运动服和休闲运动服
2020/11/12 全球购物
外语专业毕业生自我评价分享
2013/10/05 职场文书
后勤主管工作职责
2013/12/07 职场文书
捐款倡议书范文
2014/02/02 职场文书
会计专业毕业生自荐书
2014/06/25 职场文书
城管执法人员个人对照检查材料思想汇报
2014/09/29 职场文书
2015年置业顾问工作总结
2015/04/07 职场文书
工作失职自我检讨书
2015/05/05 职场文书
中秋节晚会开场白
2015/05/29 职场文书
2016年小学党支部创先争优活动总结
2016/04/05 职场文书
微信小程序和php的登录实现
2021/04/01 PHP
Django+Nginx+uWSGI 定时任务的实现方法
2022/01/22 Python
JAVA springCloud项目搭建流程
2022/05/11 Java/Android