ユーザー指定の数値範囲 (-9999 ~ 9999) とユーザー指定の桁数制限 (1 ~ 4 桁) 内で完全にランダムな整数 (非常に重要) を生成する関数が必要です。
例 1: ユーザーが -9999 ~ 9999 の 4 桁の数字を希望する場合、-9999 ~ -1000 および 1000 ~ 9999 の数字が有効な選択肢になります。
例 2: ユーザーが 25 から 200 までの 2 桁または 3 桁の数字を希望する場合、次の数字が 25 から 200 の選択肢として適切です。
機能する関数を書きましたが、それが最善の解決策かどうかわかりませんか? 重複したコードがあり、完全にランダムではないと思いますか?
// Generates a random integer
// Number range
// Min (-9999-9999)
// Max (-9999-9999)
// Digit limit
// Min (1-4)
// Max (1-4)
function generateRandomInteger(minNumber, maxNumber, minDigits, maxDigits) {
// Generate a random integer in the number range
var num = Math.floor(Math.random() * (maxNumber - minNumber)) + minNumber;
// Find number of digits
var n = num.toString();
n = n.length;
// If number is negative subtract 1 from length because of "-" sign
if (num < 0) {
n--;
}
// End: find number of digits
while ((n > maxDigits) || (n < minDigits)) {
// Generate a random integer in the number range
num = Math.floor(Math.random() * (maxNumber - minNumber)) + minNumber;
// Find number of digits
var n = num.toString();
n = n.length;
// If number is negative subtract 1 from length because of "-" sign
if (num < 0) {
n--;
}
// End: find number of digits
}
return num;
}