js獲取一組不重復的隨機數的方法


一、基本思路:

建立一個數組存放所有可能取到的值,每次從該數組中隨機取走一個,放到新的數組中,直到完成。

二、實現方法

1、方法一:

(1)創建一個數組arr,數組元素為所有可能出現的隨機數的集合;

(2)通過num=Math.floor(Math.random()*num_total*first_value)方法獲取一個隨機數。

 隨機數的范圍為0-arr.length;(用來隨機抽取arr任意位置的數組項)

(3)通過arr[num]獲取數組該位置的元素,並push到目標數組;

(4)通過arr.splice(num,1)刪除該元素;

(5)循環到(1)獲取下一個隨機數

完整寫法為:

function roa(arr)    //arr為可能出現的元素集合
{
    var temp=new array();    //temp存放生成的隨機數組
   var count=arr.length;    
    for (i=0;i<count;i++)
    { 
        var num=Math.floor(Math.random()*arr.length); //生成隨機數num
        temp.push(arr[num]);    //獲取arr[num]並放入temp
        arr.splice(num,1);    
    }
    return temp;
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM