1、min <= value < max 如: 0 <= val < 10
/**
包含最小值 但不包含最大值 :取 min <= value < max 如: 0 <= val < 10
解题关键:
min <= value 用 minV = min;
value < max 用 range = max - min;
Math.floor(rand*range + minV);
*/
function randNum(min,max,num){
var range = max - min;
var arr = [];
var minV = min; //实际上可以取的最小值
var tmp = "";
for (var i = 0; i < num; i++) {
var rand = Math.random(); // rand >=0 && rand < 1
// console.log(rand)
tmp = Math.floor(rand*range + minV);
arr.push(tmp)
}
return arr;
}
console.log(randNum(0,10,10))
console.log(randNum(1,10,10))
2、min < value =< max 如: 0 < val <= 10
/**
包含最大值 :取 min < value =< max 如: 0 < val <= 10
解题关键:
min < value 用 minV = min+1 ;
value <= max 用 range = max - min;
Math.floor(rand*range + minV);
*/
function randNum2(min,max,num){
var range = max - min,
minV = min +1, //实际上可以取的最小值
arr = [],
tmp = "";
for (var i = 0; i < num; i++) {
var rand = Math.random(); // rand >=0 && rand < 1
// console.log(rand)
tmp = Math.floor(rand*range + minV);
arr.push(tmp)
}
return arr;
}
console.log(randNum2(0,10,10))
console.log(randNum2(1,10,10))
3、min < value < max 如: 0 < val < 10
/**
不包含最大值也不包含最小值 :取 min < value < max 如: 0 < val < 10
解题关键:
min < value 用 minV = min+1 ;
value < max 用 range = max - min - 1;
Math.floor(rand*range + minV);
*/
function randNum3(min,max,num){
var range = max - min - 1,
minV = min+1, //实际上可以取的最小值
arr = [],
tmp = "";
for (var i = 0; i < num; i++) {
var rand = Math.random(); // rand >=0 && rand < 1
// console.log(rand)
tmp = Math.floor(rand*range + minV);
arr.push(tmp)
}
return arr;
}
console.log(randNum3(0,10,10));
console.log(randNum3(1,10,10));
4、min <= value <= max 如: 0 <= val <= 10
/**
包含最大值也包含最小值 :取 min <= value <= max 如: 0 <= val <= 10
解题关键:
采用四舍五入Math.round(rand*range) + minV (加上最小值)
*/
function randNum4(min,max,num){
var range = max - min,
minV = min, //实际上可以取的最小值
arr = [], //返回的数组
tmp = "";
for (var i = 0; i < num; i++) {
var rand = Math.random(); // rand >=0 && rand < 1
console.log(rand)
tmp = Math.round(rand*range) + minV;
arr.push(tmp)
}
return arr;
}
console.log(randNum4(0,10,10));
console.log(randNum4(1,10,10));
扩展:
生成指定数量、指定范围、不重复的随机数