生成指定数量、指定范围内的随机数

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));
扩展: 生成指定数量、指定范围、不重复的随机数

猜你喜欢

转载自blog.csdn.net/kongjiea/article/details/78981438