javascript 如何生成不重复的随机数

JavaScript022

javascript 如何生成不重复的随机数,第1张

Math.random() 函数返回一个浮点,  伪随机数在范围[0,1)

得到两数之间的随机数:

function getRandomArbitrary(min, max) {

  return Math.random() * (max - min) + min} 得到一个两数之间的随机整数,包括两个数在内:

function getRandomIntInclusive(min, max) {

  min = Math.ceil(min)

  max = Math.floor(max)

  return Math.floor(Math.random() * (max - min + 1)) + min

function getArrayItems(arr, num) { 

//新建一个数组,将传入的数组复制过来,用于运算,而不要直接操作传入的数组 

var temp_array = new Array() 

for (var index in arr) { 

temp_array.push(arr[index]) 

//剔除一些数字

//取出的数值项,保存在此数组 

var return_array = new Array() 

for (var i = 0 i

//判断如果数组还有可以取出的元素,以防下标越界 

if (temp_array.length>0) { 

//在数组中产生一个随机索引 

var arrIndex = Math.floor(Math.random()*temp_array.length) 

//将此随机索引的对应的数组元素值复制出来 

return_array[i] = temp_array[arrIndex] 

//然后删掉此索引的数组元素,这时候temp_array变为新的数组 

temp_array.splice(arrIndex, 1) 

} else { 

//数组中数据项取完后,退出循环,比如数组本来只有10项,但要求取出20项. 

break 

return return_array 

}

var my_array = new Array() 

for (i = min i < max i++) //max,min指定范围

my_array[i] = i 

my_array = getArrayItems(my_array,1000) //得到数组

  function rand(u,d){

    ++d

    return parseInt(Math.random()*(u-d)+d)

  }