使用 JavaScript Array.sort() 进行洗牌:一项考试
在本文中,我们将探讨使用 JavaScript 的有效性和功效用于洗牌的 Array.sort() 方法。
问题
在调试会话期间出现的代码片段引起了人们对这种方法的适用性的担忧:
function randOrd(){ return (Math.round(Math.random())-0.5); } coords.sort(randOrd); alert(coords);
尽管结果看起来令人满意,但由于缺乏sort() 方法使用的排序算法的理论支持。此外,人们还担心不同实现中洗牌的一致性。
回答问题
使用 sort() 进行洗牌是否正确?
理论上,Jon 回答的,不建议依赖 sort()由于排序算法各不相同,可能会导致结果不均匀,因此需要进行混洗方法。
另一种混洗函数
尽管 sort() 存在缺点,但这里有一个高效的实现确保排列的均匀分布:
function shuffle(array) { var tmp, current, top = array.length; if(top) while(--top) { current = Math.floor(Math.random() * (top + 1)); tmp = array[current]; array[current] = array[top]; array[top] = tmp; } return array; }
评估随机性
为了评估随机性,可以仔细测量洗牌结果。通过将分布与预期值进行比较,可以评估结果的均匀性。
实际使用的含义
使用 sort() 进行洗牌时请考虑以下事项:
以上是使用 JavaScript 的 Array.sort() 进行混洗是可靠的方法吗?的详细内容。更多信息请关注PHP中文网其他相关文章!