gpt4 book ai didi

javascript - 我的生日悖论事件模拟器在 JavaScript 中运行不佳

转载 作者:行者123 更新时间:2023-12-03 03:33:47 25 4
gpt4 key购买 nike

我尝试用 Javascript 为 23 名学生做一个生日悖论事件,它应该给我 51% 的平均概率,但它总是给我 67% 左右的数字。代码如下:

var pers = [];
var D = 0;
for (var i = 0; i < 10000; i++) {
for (var k = 0; k < 23; k++) {
pers.push(Math.floor((Math.random()*366) + 1));
}
var npers = pers.slice();
npers.sort();
for ( var v = 0; v < npers.length; v++ ) {
if (npers[v-1] == npers[v]) {
D++;
}
}
pers = [];
}
D = D / 100;
var DD = D.toString();
DD = DD + "%";
document.write(DD);

您能告诉我我哪里犯了错误吗?非常感谢。我确信我犯了一个错误,因为我得到的最低百分比是 66%,远远超过了 51% 的目标。 (我已经运行了好几次了)。再次感谢您的帮助,我已经花了好几个小时试图弄清楚我做错了什么,但我无法弄清楚。

最佳答案

您计算的是所有巧合的数量,而不是房间内至少存在一个巧合的情况的数量。也就是说,如果在给定的集合中,例如,有三个人共享生日,或者有两对人共享生日,则将 D 递增两次。

D++; 之后添加一个 break;,您将得到 50% 左右的数字。

顺便说一句,您的 v 循环在索引 npers 下(在 v=0 处,您比较 npers[-1] 反对 npers[0]) - 但这不会影响结果。

关于javascript - 我的生日悖论事件模拟器在 JavaScript 中运行不佳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45966567/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com