js 怎么获取指定范围内不重复的随机数

JavaScript022

js 怎么获取指定范围内不重复的随机数,第1张

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)

  }

在javascript中输入函数Math.floor(Math.random()*10+1)。

在原来的函数上再加1就变成了Math.random()*10+1。此时就可以返回1到10的随机数了,但是我们返回的很多是小数,不符合要求。

下面就用到了Math.floor()这个函数了,这个函数执行向下舍入,也就是说10.99经过Math.floor都是10,Math.ceil(是向上舍入)即使是10.00001,返回也是11,现在我们就求出来结果了。

随机数是专门的随机试验的结果。在统计学的不同技术中需要使用随机数,比如在从统计总体中抽取有代表性的样本的时候,或者在将实验动物分配到不同的试验组的过程中,或者在进行蒙特卡罗模拟法计算的时候等等。

产生随机数有多种不同的方法。这些方法被称为随机数发生器。随机数最重要的特性是:它所产生的后面的那个数与前面的那个数毫无关系。