中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

js隨機數生成且不重復的方法是什么

js
小億
241
2023-12-16 10:59:31
欄目: 編程語言

生成不重復的隨機數可以使用以下方法:

  1. 使用Math.random()函數生成隨機數,然后乘以一個足夠大的數,再取整,得到一個整數。
  2. 將生成的隨機數存儲在一個數組中,每次生成一個新的隨機數時,可以遍歷數組檢查是否已存在該隨機數,如果存在則重新生成。
  3. 可以使用Fisher-Yates算法,將數字從1到N按順序放入一個數組中,然后隨機交換數組中的元素,直到達到所需的隨機數個數。
  4. 在生成隨機數之前,創建一個包含所有可能隨機數的數組,然后使用splice()函數從數組中隨機移除一個元素,即得到一個不重復的隨機數。

下面是使用Fisher-Yates算法生成不重復隨機數的示例代碼:

function generateRandomNumbers(n) {
  var numbers = [];
  for (var i = 1; i <= n; i++) {
    numbers.push(i);
  }
  
  for (var i = n - 1; i >= 0; i--) {
    var j = Math.floor(Math.random() * (i + 1));
    var temp = numbers[i];
    numbers[i] = numbers[j];
    numbers[j] = temp;
  }
  
  return numbers.slice(0, n);
}

var randomNumbers = generateRandomNumbers(10); // 生成10個不重復的隨機數
console.log(randomNumbers);

該代碼生成一個包含1到N的整數的數組,然后使用Fisher-Yates算法隨機交換數組中的元素,最后返回指定個數的隨機數。

0
永登县| 平塘县| 双桥区| 建阳市| 西华县| 水城县| 永福县| 沾益县| 北流市| 民权县| 偃师市| 郎溪县| 藁城市| 六盘水市| 分宜县| 普兰店市| 腾冲县| 鄂托克旗| 武功县| 峡江县| 合水县| 沁阳市| 眉山市| 卓资县| 栖霞市| 德保县| 资源县| 西藏| 体育| 航空| 绥中县| 余姚市| 上栗县| 江都市| 溧水县| 苍南县| 镇巴县| 樟树市| 西安市| 海盐县| 合水县|