溫馨提示×

在js中如何生成不重復的隨機數(shù)

js
小樊
88
2024-10-09 21:42:21
欄目: 編程語言

在JavaScript中,要生成一個不重復的隨機數(shù),你可以使用以下方法:

  1. 創(chuàng)建一個包含所有可能值的數(shù)組。
  2. 對數(shù)組進行洗牌,以隨機順序重新排列元素。
  3. 從打亂順序的數(shù)組中選擇一個元素作為隨機數(shù)。

以下是一個示例代碼:

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個不重復隨機數(shù)
const uniqueRandomNumbers = generateUniqueRandomNumbers(3, 1, 10);
console.log(uniqueRandomNumbers);

在這個示例中,getRandomInt函數(shù)用于生成一個指定范圍內(nèi)的隨機整數(shù)。generateUniqueRandomNumbers函數(shù)接受一個count參數(shù),表示要生成的不重復隨機數(shù)的數(shù)量,以及minmax參數(shù),表示隨機數(shù)的范圍。該函數(shù)使用Set數(shù)據(jù)結(jié)構(gòu)來存儲不重復的隨機數(shù),直到達到指定的數(shù)量為止。最后,將Set轉(zhuǎn)換為數(shù)組并返回。

0