JavaScript 获取随机整数
Math.random()方法会返回介于 0(包含) ~ 1(不包含) 之间的一个随机数
假如想要拿到0-10之间的数,只需要将该方法的值*10 即Math.random()*10;
假如想要拿到0-20之间的数,同理,只需要将该方法的值*20 即Math.random()*20;
那么,想要拿到0-n之间的数,n是整十倍的数,即Math.random()*n。
想要拿到1-11之间的数呢?就是在0-10的基础上,加上1 即Math.random()*10+1;
即 想要拿到m-n+m之间的数,n是整十倍的数,即Math.random()*n+m。
拿到1-10之间的数呢?就是在0-9的基础上,加上1 即Math.random()*9+1;
即 想要拿到m-n之间的数,即Math.random()*(n-m)+m
此时,拿到的数值都是小数,而且都是大于m小于n的值。
舍掉小数点后的数值的方法有很多,如parseInt(),Math.ceil(),Math.floor(),Math.round()
如果使用parseInt()或Math.floor(),如在0-1之间,永远拿不到1的情况,不满足
如果使用Math.ceil(),如在0-1之间,除非拿到的值是0,否则都是拿到1的情况,虽然满足,但是概率不平均
使用Math.round()是最合适的,如在0-1之间,0.5及以上的值会返回1,0.5以下的值返回0。概率平均。
所以,拿到m-n之间的数,m不等于n,Math.round(Math.random()*(n-m)+m)
获取不重复的随机整数:(参数:随机数个数,最小值,最大值)
function randomArr(params) {
params = { ...{ length: 5, min: 2, max: 32 }, ...params };
let { length, min, max } = params;
if (
typeof length != "number" ||
typeof min != "number" ||
typeof max != "number" ||
max <= min ||
length <= 0
) {
return [];
}
if(max - min < length) {
length = max - min + 1;
}
let arr = [];
for (let i = 0; i < length; i++) {
let num = Math.round(Math.random() * (max - min)) + min;
if (!arr.includes(num)) {
arr.push(num);
} else {
i-=1
}
}
return arr;
}
var result0 = randomArr();
console.log(result0); // [ 7, 15, 18, 16, 4 ]
var result1 = randomArr({});
console.log(result1); // [ 17, 24, 27, 25, 8 ]
var result2 = randomArr({ length: 3 });
console.log(result2); // [ 24, 4, 27 ]
var result3 = randomArr({ min: 0 });
console.log(result3); // [ 21, 11, 8, 18, 13 ]
var result4 = randomArr({ max: 20 });
console.log(result4); // [3, 7, 11, 15, 8]
var result5 = randomArr({ max: 4 });
console.log(result5); // [3, 4, 2]
JavaScript 获取随机整数的更多相关文章
- Javascript 获取随机颜色的几种方式
先认识一下颜色值的表达方式 #FFFFFF,由6位16进制数组成.#FFFFFFFF,由8位16进制数组成,前6位表示颜色,后两位数表示透明度,数值越大,透明度越小.rgb(255,255,255), ...
- javascript获取随机rgb颜色和十六进制颜色的方法
<div id="console">在线交易平台的成功秘诀:从 Ebay 到 Yelp 到 Uber</div> <script type=" ...
- javascript获取随机颜色
方案一: function getRandomColor(){ var str = "0123456789abcdef"; var t = "#"; for(j ...
- JS生成限定整数区间范围内的随机整数
对于整数区间获取随机整数: m,n均为整数,且n>m. 获取[m,n)区间内的随机整数: 1 var aNumber = (n - m) * Math.random() + m; 2 var r ...
- javascript获取整数随机数
javascript获取整数随机数 // 从4到10的随机数,|0是生成正整数 var numBars = Math.random()*6+4|0; 也可以通过右移0位(或者左移0位)进行取整 var ...
- javascript生成指定范围的随机整数
JavaScript有提供一个生成值区间在(0, 1)的随机小数的函数. Math.random(); // 0.10529863457509858 如果你和喜欢的人一起执行这个函数,之后生成的随机小 ...
- js 获取某个某个区间内的随机整数
//获取某个某个区间内的随机整数 ,获取到的值域为[min,max)function get_random_num(min,max){ if(/^-?\d+$/.test(min) && ...
- js random获取随机数,获取任意范围内随机整数
壹 ❀ 引 想着好久没做笔试题了,去GitHub找了面试相关的项目,结果被第一道题难住了.....说难其实也不难,而是我忘记了取范围随机整数怎么写了,不可否认如果当时是我在笔试,肯定也凉了,那么就由 ...
- 获取m,n之间的随机整数
获取m,n之间的随机整数 代码去下:
随机推荐
- Vue入门---安装及常用指令介绍
1.安装 BootCDN----官网https://www.bootcdn.cn/ <script src="https://cdn.bootcss.com/vue/2.6.10/vu ...
- PTA第四周作业
一.本周完成的作业 7-2 选择法排序 (20 分) 本题要求将给定的n个整数从大到小排序后输出. 输入格式: 输入第一行给出一个不超过10的正整数n.第二行给出n个整数,其间以空格分隔. 输出格式: ...
- APM全链路监控--日志收集篇
一.监控的意义: 随着互联网普及的广度和深度,对于项目的监控显得格外重要:无论是web服务器进程.内存.cpu等资源监控,还是爬虫程序请求频率,状态码以及储存结果的监控,都需要一个及时的反馈机制. 二 ...
- XMind8激活为Pro教程 - Windows&Mac
本教程用于激活XMind(思维导图制作软件),仅限于个人学习使用. 目前本人激活的版本是xmind8-up6版本,其他更高版本不保证能适用. Windows步骤: 1.英文官网下载客户端并安装(不能用 ...
- CVE-2016-0822-MTK-drivers/misc/mediatek/connectivity/common/combo/linux/wmt_dev.c#1158
CVE-2016-0822-MTK-drivers/misc/mediatek/connectivity/common/combo/linux/wmt_dev.c#1158 //mediatek/ke ...
- python学习第四十五天__name__用法和作用
在python导入模块导入另外一个模块的时候,有时候只是想用其一个方法,会出现其他的方法也运行了,python用到__name__==‘__main__’ 解决问题,那么__name__用法和作用 1 ...
- addEventListener 的三个参数
addEventListener 有三个参数:第一个参数表示事件名称(不含 on,如 "click"):第二个参数表示要接收事件处理的函数:第三个参数为 useCapture,本文 ...
- Linux awk抓取IP的两种方式
ip addr show ens33 | awk -F "[ /]+" '/inet /{print $3}' 或 ifconfig ens33 | awk -F "[ ...
- 前端校招知识体系之css
本文将从以下四个方面展开介绍: 选择器 样式表继承 css3部分特性 BFC css选择器优先级策略 先附上个链接:css选择器参考手册 内联>id>class=属性选择器=伪类选择器&g ...
- 2014-03-01 春季PAT 1073-1076解题报告
今天下午的PAT考试状态不理想,回来怒刷了一遍,解题报告如下: 1073. Scientific Notation (20) 基本模拟题,将一长串的科学计数转换为普通的数字表示方式.思路是是数组存储输 ...