获取n个不重复随机数的三种方法_Three methods get n+ not repeated random number

1.获取n个随机数,若n个随机数不相同,则赋值,否则使用递归继续调用该方法.

优化:若需要由小到大,先判断各个数互不相等,再赋值,若相等则进行递归(概率会很小)

2.声明一个array 包含元素[0…9],然后随机生成一个中间值4-6,然后加上一个生成的合理随机值保证排除之前生成值.

3.用一个方法来专门生成值并使其和上一个值不同

var a = genTwoRandomNumber();
alert(a);
function genTwoRandomNumber(){
//var arr = addRandomNum(2);
var arr = genTwoRandomNumber();
return ‘’+arr[0]+arr[1];
}

//add a new not repeat array element
function addSeed(arr){
var seed = Math.floor(Math.random()*10);
var index = arr.indexOf(seed);
if(index<0){
arr.push(seed);
}else{
addSeed(arr);
}
}

//genarate a new number and digital is set by user
function addRandomNum(size){
var arr = [];
var seed = Math.floor(Math.random()*10);
if(size>0){
for(var i =0;i<size;i++){
addSeed(arr);
}
arr.sort();
return arr;
}
}

//use the recursion as default method
function genTwoRandomNumber(){
var result = ‘’;
var temp1 = String(Math.floor(Math.random()10));
var temp2 = String(Math.floor(Math.random()
10));
if(temp1!=temp2){
result = result+temp1+temp2;
}else{
result = genBox3RandomNumber();
}
return result;
}

function genTwoRandomNumber2(){
var result = ‘’;
var seed = Math.floor(Math.random()10);
var temp1 = String(Math.floor(Math.random()
10));
var temp2 = String(Math.floor(Math.random()10));
if(seed<4){
var a = Math.floor(Math.random()
9+1);
}
return result;
}