JavaScriptは、指定された範囲内の乱数を生成します.そして、プログラム問題を解決する「関数fn」と、パラメータnがあり、その戻り値は配列であり、n個のランダムで重複しない整数であり、整数の取値範囲は[2,32]」である.

1159 ワード

一定範囲内の乱数を生成します.これは元のJavaScriptにはない関数なので、自分で実現します(小数範囲はサポートされていますが、整数を返します)

原理:内蔵オブジェクトMathを利用したrandom,floor,ceilメソッド


randomメソッド:0~1の間の乱数(1を含まない)floorメソッドを生成する:ceilメソッドを下に取る:上向きに整える
OK、次は関数としてカプセル化します
function fn(min,max){
    min = Math.ceil(min);
    max = Math.floor(max);
    //     ,    ,   +1,       ,      ,    
    let num = Math.floor(Math.random() * (max-min+1)) + min;
    return num;
}
console.log(fn(2,32));
console.log(fn(2.1,5.2));

コアコード:Math.floor(Math.random() * (max-min+1)) + min
プログラミング問題:関数fn、この関数にはパラメータnがあり、その戻り値は配列であり、n個のランダムで重複しない整数であり、整数の取値範囲は[2,32]である.
function fn(n){
    if(typeof(n) != 'number'){
        return 'n  Number  ';
    }
    if(n<=0){
        return 'n    0';
    }
    let arr = [];
    while(1){
        //     2~32       :
        let num = Math.floor(Math.random()*(32-2+1)) + 2;
        if(arr.indexOf(num) == -1){
            arr.push(num);
        }
        if(arr.length == n){
            break;
        }
    }
    return arr;
}
console.log(fn('12'));
console.log(fn(0));
console.log(fn(7));