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之间的随机整数 代码去下:
随机推荐
- Java实验报告(一)&&第三周学习总结
实验报告(一) 1. 打印输出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其中各位数字立方和等于该数本身.例如,153是一个“水仙花数”. 源代码: public class Main { p ...
- Web API入门二(实例)
学习编程的最好方法就是实例,本人用的是VS2015 1.创建ASP.NET Web空项目 点击确定后即创建了空"WebApi"项目 2.下面,我们需要使用NuGet包管理器添加最新 ...
- HDUSTOJ-1558 Flooring Tiles(反素数)
1558: Flooring Tiles 时间限制: 3 Sec 内存限制: 128 MB提交: 59 解决: 36[提交][状态][讨论版] 题目描述 You want to decorate ...
- 给定两个list A ,B,请用找出 A ,B中相同的元素,A ,B中不同的元素 ??
A.B 中相同元素:print(set(A)&set(B)) A.B 中不同元素:print(set(A)^set(B))
- P3452 [POI2007]BIU-Offices
传送门 首先能想到 $n^2$ 的做法 枚举所有两点,看看是否有边相连,如果没有说明它们一定要在同一集合,用并查集维护一下就行 注意到如果没有边这个条件,其实就相当于问补图有边 所以题意可以转化为,求 ...
- 剑指offer学习读书笔记--二维数组中的查找
在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都是按照从上到下递增的顺序排序.请设计一个函数,输入这样的一个二维数组和一个整数,判断数组是否含有这个整数. 1 2 8 9 2 4 9 1 ...
- C# 异常处理最佳实践,解决代码分析提示CA1031:不要捕捉一般异常类型的解决办法
异常类型 异常一般分为系统异常 和 应用异常.系统异常有无法连接数据库,而应用异常是业务逻辑异常,比如授权失败. 在 C# 中异常基于 System.Exception,派生出 System.Syst ...
- Kubernetes部署DNS
前言 阅读地址 http://thoreauz.com/2017/04/16/docker/Kubernetes%E9%83%A8%E7%BD%B2DNS%E5%92%8CDashboard/ Kub ...
- 原生jdbc操作
1:加入dbcp连接池依赖 <dependency> <groupId>org.apache.commons</groupId> <artifactId> ...
- 《Webkit技术内幕》之页面渲染过程
文章同步到github<Webkit技术内幕>之页面渲染过程 最近拜读了传说中的<Webkit技术内幕>一书,有很大收获,尤其是对页面渲染有了较深的认识.由于功力有限,而且书中 ...