js生成不重复的随机数
时间: 2023-09-02 11:11:43 浏览: 103
有很多方法可以生成不重复的随机数,其中一个常用的方法是使用Fisher–Yates shuffle算法,具体步骤如下:
1. 创建一个包含所有可能的随机数的数组。
2. 从数组中随机选择一个数,并把它与数组中最后一个数交换位置。
3. 从数组中剩下的数中再随机选一个数,并把它与倒数第二个数交换位置。
4. 重复上述步骤,直到只剩下一个元素。
这样生成的随机数序列是不重复的,而且每一个随机数的出现概率相等。在JS中可以这样实现:
```
function shuffle(array) {
for (let i = array.length - 1; i > 0; i--) {
const j = Math.floor(Math.random() * (i + 1));
[array[i], array[j]] = [array[j], array[i]];
}
}
const arr = Array.from({length: 100}, (_, i) => i + 1); // 生成一个包含所有可能的随机数的数组
shuffle(arr); // 打乱数组
console.log(arr); // 打印出不重复的随机数序列
```
相关问题
html不重复随机数
可以使用JavaScript来生成不重复的随机数。以下是一种方法:
1. 创建一个数组,用于存储已生成的随机数。
2. 使用一个循环来生成随机数,并检查该数是否已存在于数组中。
3. 如果随机数不存在于数组中,则将其添加到数组中,并在HTML中使用。
以下是一个示例代码:
```html
<!DOCTYPE html>
<html>
<head>
<title>不重复随机数示例</title>
<script>
function generateRandomNumber() {
var randomNumber;
var generatedNumbers = [];
while (true) {
randomNumber = Math.floor(Math.random() * 100) + 1;
if (!generatedNumbers.includes(randomNumber)) {
generatedNumbers.push(randomNumber);
break;
}
}
document.getElementById('randomNumber').innerHTML = randomNumber;
}
</script>
</head>
<body>
<h1>不重复随机数示例</h1>
<button onclick="generateRandomNumber()">生成随机数</button>
<p id="randomNumber"></p>
</body>
</html>
```
js 1-999的不重复随机数
可以使用以下代码生成1到999之间不重复的随机数:
var arr = [];
for (var i = 1; i <= 999; i++) {
arr.push(i);
}
arr.sort(function() {
return 0.5 - Math.random();
});
var result = arr.slice(0, 999);
console.log(result); // 输出不重复的随机数序列
阅读全文