利用JS实现指定范围内【m,n】的随机整数,并且可以根据
allowDuplicates
参数来决定是否允许生成的数字重复,最终将结果存在数组中并作为函数的返回值。
function generateRandomNumbers(m, n, k, allowDuplicates = false) {
if (!allowDuplicates && k > (n - m + 1)) {
throw new Error('k is larger than the range size. Cannot generate unique random numbers.');
}
let result = [];
if (allowDuplicates) {
// 如果允许重复,直接从整个范围中随机选择数字
while (k--) {
result.push(Math.floor(Math.random() * (n - m + 1)) + m);
}
} else {
// 如果不允许重复
let nums = Array.from({ length: n - m + 1 }, (_, i) => i + m); // 创建一个包含范围[m, n]内所有整数的数组
while (k--) {
let index =