指定された範囲を生成する乱数と重複しない指定された配列を生成する乱数と重なりません

/ * * 
             *乱数重複しない指定された範囲プロデュース
             *パラメータ:最小INT 
             *二つのパラメータ:int型の最大値を
             *三つのパラメータ:ランダムな整数の数
             *戻り値:配列が配列結果
             * * / 
            機能をgetRandNumForRange(最小、MAX、NUM){ 
                // 値によって正当性を確認
                のiF(NUM>最大-最小)リターン falseに;
                 // すべての値の指定された範囲を生成
                するvar numlist = []、
                    numRandList = []、
                    RANDID; 
                のためのVAR I =少なくとも、私は最大の<;私++)NumList.push(I);
                 //は、レコード番号を生成
                するためのVAR I = 0 IはNUMを<; Iは++ ){ 
                    RANDID = Math.floor(Math.random()* numList.length); // IDのランダムアレイ 
                    numRandList.push(numlist [RANDID]); //は値取得 
                    numList.splice(RANDID、。1); // メンバーを防止再度次のランを削除
                }
                 戻りnumRandListを; 
            } 

            / * * 
             *ランダム非反復の指定された配列を生成します数
             *パラメータ:配列の配列を抽出する
             * 2つのパラメータ:ランダムint型の数 
             *戻り値:配列の配列結果
             * * / 
            機能getRandNumForArray(numarray、NUM){ 
                // 値によって正当性をチェック
                IF(NUM> numArray.length)リターン falseには// 記録周波数生成
                VARを numRandList = []、
                    RANDID; 
                のためのVARの I = 0 ;私は<NUM; I ++ ){ 
                    RANDID = Math.floor(Math.random()* numArray.length); // IDのランダムアレイ 
                    numRandList.push(numarray [RANDID]); // 値の取得 
                    (randIdをnumArray.spliceを1);// これは、再び次の世代のメンバーを防ぐ削除
                }
                 を返す。numRandListを
            }

 

おすすめ

転載: www.cnblogs.com/1212dsa/p/11429507.html