最佳答案
我当时正在帮助一个人解决 JavaScript 代码的问题,我的眼睛被一个看起来像这样的部分吸引住了:
function randOrd(){
return (Math.round(Math.random())-0.5);
}
coords.sort(randOrd);
alert(coords);
我的第一个想法是: 嘿,这不可能成功的!但随后我做了一些实验,发现它确实至少似乎提供了很好的随机结果。
然后我做了一些网络搜索,几乎在顶部发现了一个 文章,这个代码是最清楚地复制。看起来是个不错的网站和作者。
但我的直觉告诉我,这一定是错的。特别是由于 ECMA 标准没有明确规定排序算法。我认为不同的排序算法会导致不同的非均匀洗牌。一些排序算法甚至可能无限循环..。
你觉得怎么样?
作为另一个问题... 我现在该如何去测量这种洗牌技术的结果有多随机?
更新: 我做了一些测量,并将结果作为答案之一发布在下面。