js生成[n,m]の乱数

3385 ワード

一、予備知識 
Math.ceeir() //上に向かって整理する
Math.flor() //下に整理します
Math.round(); //四捨五入
Math.random() //0.0~1.0の間の疑似乱数.【0を含むものは1を含まない】/たとえば0.86475789666494
Math.ceir(Math.random()*10)     // 1から10までのランダム整数を取得し、0を取る確率は極めて小さい.
Math.round(Math.random(); //0から1までのランダム整数をバランスよく取得できます.
Math.flor(Math.random()*10) //0から9までのランダム整数をバランスよく取得できます.
Math.round(Math.random()*10) //基本的なバランスは0から10の乱数の整数を取得します.最小値0と最大値10を取得する確率は半分以下です.
結果は0~0.4で、0.5から1.4までは1…8.5から9.4までは9で、9.5から9.9までは10です.だから、頭尾の分布区間は他の数字の半分しかないです.
二、[n,m]を生成するランダム整数
関数機能:[n,m]のランダム整数を生成します.
認証コードを生成したり、オプションをランダムに選択したりする場合に有用です.
//   minNum maxNum    
function randomNum(minNum,maxNum){ 
    switch(arguments.length){ 
        case 1: 
            return parseInt(Math.random()*minNum+1,10); 
        break; 
        case 2: 
            return parseInt(Math.random()*(maxNum-minNum+1)+minNum,10); 
        break; 
            default: 
                return 0; 
            break; 
    } 
} 
 プロセス解析:
Math.random()は[0,1]の数を生成するので、
Math.random()*5は{0,5}の数を生成する.
通常は整数が期待されますので、得られた結果を処理します.
parseInt()、Math.flor()、Math.ceeir()、Math.round()は整数を得ることができます.
parseInt()とMath.flor()の結果は下に整理されます.
したがって、Math.randowm()*5は[0,4]のランダムな整数を生成する.
したがって、[1,max]の乱数を生成します.数式は以下の通りです.
// max -       
parseInt(Math.random()*max,10)+1;
Math.floor(Math.random()*max)+1;
Math.ceil(Math.random()*max);
したがって、[0,max]から任意の数の乱数を生成します.数式は以下の通りです.
// max -       
parseInt(Math.random()*(max+1),10);
Math.floor(Math.random()*(max+1));
したがって[min,max]の乱数を生成したいです.公式は以下の通りです.
// max -       
// min -       
parseInt(Math.random()*(max-min+1)+min,10);
Math.floor(Math.random()*(max-min+1)+min);
この文章の著者starofは、知識自体が変化しているため、作者も成長を続けています.文章の内容も定期的に更新されていません.読者を誤解させないように、根源を追求しやすく、出所を転載してください.http://www.cnblogs.com/starof/p/4988516.html問題があれば、私と討論して、共に進歩します.