使用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 相关文章推荐
javascript eval函数深入认识
Feb 21 Javascript
js实现特定位取反原理及示例
Jun 30 Javascript
javascript事件模型实例分析
Jan 30 Javascript
javascript获取以及设置光标位置
Feb 16 Javascript
vue.js 1.x与2.0中js实时监听input值的变化
Mar 15 Javascript
详解Vue 实例中的生命周期钩子
Mar 21 Javascript
Vue 换肤的示例实践
Jan 23 Javascript
JS运动特效之链式运动分析
Jan 24 Javascript
React Native 自定义下拉刷新上拉加载的列表的示例
Mar 01 Javascript
JavaScript作用域、闭包、对象与原型链概念及用法实例总结
Aug 20 Javascript
vue里面使用mui的弹出日期选择插件实例
Sep 16 Javascript
JavaScript高级程序设计之变量与作用域
Nov 17 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
一个查看session内容的函数
2006/10/09 PHP
PHP+DBM的同学录程序(1)
2006/10/09 PHP
php与mysql建立连接并执行SQL语句的代码
2011/07/04 PHP
Centos 6.5系统下编译安装PHP 7.0.13的方法
2016/12/19 PHP
地震发生中逃生十大法则
2008/05/12 Javascript
如何让easyui gridview 宽度自适应窗口改变及fitColumns应用
2013/01/25 Javascript
jQuery实现悬浮在右上角的网页客服效果代码
2015/10/24 Javascript
Augularjs-起步详解
2016/07/08 Javascript
多个上传文件用js验证文件的格式和大小的方法(推荐)
2017/03/09 Javascript
javascript+html5+css3自定义弹出窗口效果
2017/10/26 Javascript
Nodejs中的JWT和Session的使用
2018/08/21 NodeJs
vue使用video.js进行视频播放功能
2019/07/18 Javascript
基于原生js实现判断元素是否有指定class名
2020/07/11 Javascript
在Vue 中实现循环渲染多个相同echarts图表
2020/07/20 Javascript
three.js欧拉角和四元数的使用方法
2020/07/26 Javascript
JavaScript对象访问器Getter及Setter原理解析
2020/12/08 Javascript
[03:44]2015国际邀请赛选手档案—Cloud9.NoTail
2015/07/28 DOTA
Python3通过Luhn算法快速验证信用卡卡号的方法
2015/05/14 Python
Python实现删除文件但保留指定文件
2015/06/21 Python
python+opencv像素的加减和加权操作的实现
2019/07/14 Python
python如何解析复杂sql,实现数据库和表的提取的实例剖析
2020/05/15 Python
python如何从键盘获取输入实例
2020/06/18 Python
Pycharm中如何关掉python console
2020/10/27 Python
canvas实现图片马赛克的示例代码
2018/03/26 HTML / CSS
html5 datalist标签使用示例(自动完成组件)
2014/05/04 HTML / CSS
Java中的类包括什么内容?设计时要注意哪些方面
2012/05/23 面试题
企业统计员岗位职责
2013/12/13 职场文书
学习十八大报告感言
2014/02/04 职场文书
绿化工程实施方案
2014/03/17 职场文书
焦裕禄精神心得体会
2014/09/02 职场文书
幼儿园校园小喇叭广播稿
2014/10/17 职场文书
四风问题自查自纠工作情况报告
2014/10/28 职场文书
2014年客房部工作总结
2014/11/22 职场文书
教师节主题班会教案
2015/08/17 职场文书
网络新闻该怎么写?这些写作技巧你都知道吗?
2019/08/26 职场文书
Jupyter Notebook内使用argparse报错的解决方案
2021/06/03 Python