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

JavaScript016

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)

  }

代码如下:

// 纯手打,不谢。

var randoms=[]

while (true)

{

    var isExists = false

    // 获取一个10–100范围的数

    var random = parseInt(10 + (90 - 10) * (Math.random()))

    // 判断当前随机数是否已经存在

    for (var i = 0 i < randoms.length i++) {

        if (random === randoms[i]) {

            isExists = true

            break

        }

    }

    // 如果不存在,则添加进去

    if (!isExists)

        randoms.push(random)

    // 如果有10位随机数了,就跳出

    if (randoms.length === 10)

        break

}

结果图:

关于js

JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能。

在1995年时,由Netscape公司的Brendan Eich,在网景导航者浏览器上首次设计实现而成。因为Netscape与Sun合作,Netscape管理层希望它外观看起来像Java,因此取名为JavaScript。但实际上它的语法风格与Self及Scheme较为接近。

为了取得技术优势,微软推出了JScript,CEnvi推出ScriptEase,与JavaScript同样可在浏览器上运行。为了统一规格,因为JavaScript兼容于ECMA标准,因此也称为ECMAScript。