JavaScriptは、指定された範囲内の乱数を生成します.そして、プログラム問題を解決する「関数fn」と、パラメータnがあり、その戻り値は配列であり、n個のランダムで重複しない整数であり、整数の取値範囲は[2,32]」である.
1159 ワード
一定範囲内の乱数を生成します.これは元のJavaScriptにはない関数なので、自分で実現します(小数範囲はサポートされていますが、整数を返します)
randomメソッド:0~1の間の乱数(1を含まない)floorメソッドを生成する:ceilメソッドを下に取る:上向きに整える
OK、次は関数としてカプセル化します
コアコード:Math.floor(Math.random() * (max-min+1)) + min
プログラミング問題:関数fn、この関数にはパラメータnがあり、その戻り値は配列であり、n個のランダムで重複しない整数であり、整数の取値範囲は[2,32]である.
原理:内蔵オブジェクト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));