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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值