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之间的随机整数 代码去下:
随机推荐
- 20190925 On Java8 第二十二章 枚举
第二十二章 枚举 基本 enum 特性 创建 enum 时,编译器会为你生成一个相关的类,这个类继承自 Java.lang.Enum. valueOf() 是在 Enum 中定义的 static 方法 ...
- Java-集合第五篇Map集合
1.什么是Map集合. Map用于保存具有映射关系的数据.key和value都可以是任意引用类型,但key不允许重复,即同一个Map的任何两个key通过equals方法比较总是返回false. 从Ja ...
- HDU-1878 欧拉回路(并查集,欧拉回路性质)
欧拉回路 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submi ...
- python 导入re模块语法及规则
正则表达式是功能比较强大的模块,应用在很多地方,抓网页,数据分析,数据验证等,下面讲述python 导入re模块语法及规则. 1,re模块语法 re.match 从头开始匹配 re.search 匹配 ...
- 利用ssh-copy-id实现SSH无密码登录
第一步: 在远程服务器产生公钥与私钥对: $ ssh-keygen -t rsa 按照提示输入完后,会在~/.ssh目录下生成id_rsa和id_rsa.pub这两个文件 第二步:用ssh-copy- ...
- 确定Git与GitHub连接起来
1.准备工作 1)下载Git 2)注册GitHub 3)将Git与GitHub链接起来 1.获取ssh密匙 2.GitHub里 找到settings 填入密匙 2.正式开始 1)确定Git与GitHu ...
- vue v-model 的使用
Vue的核心特性之一是双向绑定,vue的响应式原理是实现了数据->视图 v-bind只能实现数据的单向绑定 ,从M自动绑定到V 使用v-model 可以实现表单元素的双向绑定,且只能应用到表单元 ...
- iOS 应用配置及证书生成教程
简介 首先你需要有一个苹果的开发者帐号,一台苹果电脑.点击查看苹果开发者账号注册流程 本教程需完成应用信息配置,包括如下两个基本配置: AppID Bundle ID 同时,生成 如下三个证书文件及对 ...
- Docker镜像恢复与迁移
首先我们先删除掉 mycentos_new:1.1 镜像(注意先停止并删除所有引用了的容器) docker rmi mycentos_new:1.1 然后执行此命令进行恢复 mycentos_new: ...
- tomcat日志切割脚本shell
tomcat-rotate.sh: #!/bin/bash log_path="/home/tomcat7-api/logs/"expried_time=7 function de ...