js

在js中如何生成不重复的随机数

小樊
91
2024-10-09 21:42:21
栏目: 编程语言

在JavaScript中,要生成一个不重复的随机数,你可以使用以下方法:

  1. 创建一个包含所有可能值的数组。
  2. 对数组进行洗牌,以随机顺序重新排列元素。
  3. 从打乱顺序的数组中选择一个元素作为随机数。

以下是一个示例代码:

function getRandomInt(min, max) {
  min = Math.ceil(min);
  max = Math.floor(max);
  return Math.floor(Math.random() * (max - min + 1)) + min;
}

function generateUniqueRandomNumbers(count, min, max) {
  if (count > (max - min + 1)) {
    throw new Error("The specified count is larger than the range of unique numbers.");
  }

  const uniqueRandomNumbers = new Set();

  while (uniqueRandomNumbers.size < count) {
    const randomNumber = getRandomInt(min, max);
    uniqueRandomNumbers.add(randomNumber);
  }

  return Array.from(uniqueRandomNumbers);
}

// 使用示例:生成1到10之间(包括1和10)的3个不重复随机数
const uniqueRandomNumbers = generateUniqueRandomNumbers(3, 1, 10);
console.log(uniqueRandomNumbers);

在这个示例中,getRandomInt函数用于生成一个指定范围内的随机整数。generateUniqueRandomNumbers函数接受一个count参数,表示要生成的不重复随机数的数量,以及minmax参数,表示随机数的范围。该函数使用Set数据结构来存储不重复的随机数,直到达到指定的数量为止。最后,将Set转换为数组并返回。

0
看了该问题的人还看了