gpt4 book ai didi

javascript生成50个不重复的随机数

转载 作者:行者123 更新时间:2023-11-28 21:02:12 25 4
gpt4 key购买 nike

我想用javascript生成50个不重复的随机数,该数字在1到50之间,如何实现?这50个数字存储在一个数组中。

最佳答案

首先生成一个有序列表:

var i, arr = [];
for (i = 0; i < 50; i++) {
arr[i] = i + 1;
}

然后随机播放。

arr.sort(function () {
return Math.random() - 0.5;
});

我测试了上面的方法,效果很好。然而,ECMAScript 规范不要求 Array.sort 的实现方式使得该方法生成真正随机的列表 - 因此,虽然它现在可能有效,但结果可能会在没有警告的情况下发生变化。下面是 Fisher-Yates shuffle 的实现,它不仅保证产生合理的随机分布,而且比劫持排序更快。

function shuffle(array) {
var p, n, tmp;
for (p = array.length; p;) {
n = Math.random() * p-- | 0;
tmp = array[n];
array[n] = array[p];
array[p] = tmp;
}
}

关于javascript生成50个不重复的随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10694668/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com