怎样实现从一个长度为100的数组中随机取十个不同的数,只能循环一次,且不进行判断

Fisher–Yates_shuffle算法: Fisher-Yates shuffle 只做10次即可。

■网友
补充一下 @余建荣 的算法,用JS举个例子:
let swap = (arr, i, j) =\u0026gt; { let t = arr; arr = arr; arr = t; };let shuffle = (arr, n) =\u0026gt; { let t = arr.slice(0, arr.length), l = t.length; for(let i = l - 1; i \u0026gt;= l - n; --i) swap(t, i, Math.floor(Math.random() * (i + 1))); return t.slice(l - n, l); };let arr = ;console.log(shuffle(arr, 10)); 【怎样实现从一个长度为100的数组中随机取十个不同的数,只能循环一次,且不进行判断】 其实说白了就是每次在剩下的数中选一个啦。就这样。

■网友
可是只能循环一次啊


    推荐阅读