【发布时间】:2021-04-28 16:06:28
【问题描述】:
我正在进行一项研究,该研究使用以下 javascript 将参与者重定向到 8 个随机网站之一(在其他空白的 HTML 页面上)。
奇怪的是每个站点的参与者分布情况。到目前为止,我有大约 64 名参与者,我知道真正的随机性并不意味着每个站点应该有 8 个访问者。但是,其中一个站点只有一个重定向(站点编号 5),而另一个站点有 19 个(站点编号 1)。其他的都接近 8 次访问。
我只是想检查一下我没有用这么简单的代码犯任何愚蠢的错误/假设。我想不出任何理由为什么它更有可能产生“1”而不太可能产生“5”。
难道这只是随机数生成的运气,在样本量较小且有 8 种可能性的情况下,某些网站的访问次数可能比其他网站多 19 次?
任何意见将不胜感激。
<script type="text/javascript">
function randomlinks(){
var myrandom=Math.floor(Math.random()*8)
var links=new Array()
links[0]="[website0 name here]"
links[1]="[website1]"
links[2]="[website2]"
links[3]="[website3]"
links[4]="[website4]"
links[5]="[website5]"
links[6]="[website6]"
links[7]="[website7]"
window.location=links[myrandom]
}
randomlinks();
</script>
【问题讨论】:
-
Math.random 是伪随机的
-
考虑使用数组文字代替吗?
var links = ["[website0]","[website1]","[website2]", ...]? -
AFAIK 在任何编程语言中都没有“真正的随机性”。这就是为什么人们使用外部资源来实现真正的随机性cloudflare.com/learning/ssl/lava-lamp-encryption
-
你没有犯“愚蠢的错误”。随机数只是......好吧,随机的。
-
对于您的用例来说没问题。
Math.random是均匀分布的。你观察到的纯粹是运气。
标签: javascript random