/**
* 产生指定范围不重复的随机数
* 参数一: 最小值 int
* 参数二: 最大值 int
* 参数三: 随机数量 int
* 返回值: 结果数组 Array
**/
function getRandNumForRange(least, max, num) {
// 检查传值是否合法
if(num > max - least) return false;
// 产生指定范围的所有数值
var numList = [],
numRandList = [],
randId;
for(var i = least; i < max; i++) numList.push(i);
// 产生记录次数
for(var i = 0; i < num; i++) {
randId = Math.floor(Math.random() * numList.length); // 随机一个数组ID
numRandList.push(numList[randId]); // 获取这个值
numList.splice(randId, 1); // 删除这个成员 防止下次再次生成
}
return numRandList;
}
/**
* 产生指定数组不重复的随机数
* 参数一: 抽取数组 Array
* 参数二: 随机数量 int
* 返回值: 结果数组 Array
**/
function getRandNumForArray(numArray, num) {
// 检查传值是否合法
if(num > numArray.length) return false;
// 产生记录次数
var numRandList = [],
randId;
for(var i = 0; i < num; i++) {
randId = Math.floor(Math.random() * numArray.length); // 随机一个数组ID
numRandList.push(numArray[randId]); // 获取这个值
numArray.splice(randId, 1); // 删除这个成员 防止下次再次生成
}
return numRandList;
}
产生指定范围不重复的随机数,产生指定数组不重复的随机数
程序员文章站
2022-05-19 20:56:30
...
上一篇: 中序后序求前序
下一篇: 已知前序和中序求后序