我用他的JavaScript代码帮助了一个人,我的眼睛被一个看起来像这样的部分抓住了:
function randOrd(){
return (Math.round(Math.random())-0.5);
}
coords.sort(randOrd);
alert(coords);
Run Code Online (Sandbox Code Playgroud)
我的第一个是:嘿,这不可能奏效!但后来我做了一些实验,发现它确实至少似乎提供了很好的随机结果.
然后我做了一些网络搜索,几乎在顶部发现了一篇文章,这段代码最简单地被复制.看起来像一个相当可敬的网站和作者......
但我的直觉告诉我,这一定是错的.特别是因为ECMA标准没有规定排序算法.我认为不同的排序算法会导致不同的非均匀混洗.一些排序算法甚至可能无限循环...
但你怎么看?
而另一个问题是......现在我将如何衡量这种改组技术的结果是多么随机?
更新:我做了一些测量并将结果发布在下面作为答案之一.
到目前为止,我正在尝试制作七个随机数的数组,这是我的代码:
function lotoGenerator() {
var array = [];
var i;
for (i = 0; i <=6; i++) {
var temp = Math.floor((Math.random() * 39) + 1);
array.push(temp);
}
console.log(array);
}
lotoGenerator();
Run Code Online (Sandbox Code Playgroud)
现在有了这段代码,我可以得到像这样的结果[30,6,36,8,16,27,6].你可以看到6号出来两次.有没有办法让数组不重复数字.我是javaScript的新手,我无法实现我在网上找到的解决方案.