java - 生日问题 - N 中至少有 2 个
问题描述
我收到了一些修改过的生日问题——我需要运行一个函数来返回 N 人中至少有两个人生日相同的概率。然后是一个计算最小 n 的主函数,使得这个概率至少为 0.5。我试图写一个,但唯一的输出是 0 或 1,我会很感激调试或指出我做错了什么。这是我所做的:
public class Birthday {
public static double probSameBirthday(int n) {
double days = 1 / 365; // number of days
int i, person = 0; // total number of people
double noProb = 0;
int people = n;
for (i = 2; i <= n; i = i + 1) {
person = i;
noProb = (1 - ( noProb * (1 - (person - 1) * days))) / 100;
}
return (noProb);
}
public static void main(String[] args){
int n = Integer.parseInt(args[0]);
System.out.println(probSameBirthday(n));
}
}
解决方案
感谢评论回答:将日期更改为
double days = 1.0 / 365.0;
和
the noProb =(1-( noProb * (1- (person-1)*days)))/100;
到noProb =( noProb * (1- (person-1)*days));
现在返回它的运行方式与https://www.dcode.fr/birthday-problemreturn (1-noProb);
中的计算器相同
推荐阅读
- java - Java - IntelliJ - JScrollPane 中的 JList
- python - 在 Python Shell 中清除屏幕
- java - Java - 从构造函数外部更新 swing UI
- gatsby - Gatsby google-tagmanager 插件:如何访问 dataLayer.push
- spring - 带有 HOCON 文件的 Spring Cloud Config
- reactjs - 不变违规:元素类型无效预期字符串(对于内置组件)......但得到:未定义
- rust - 由于缺少 libc,Rust Cargo 与 musl 交叉编译失败
- c# - 无法找到 .NET Core SDK。.NET Core 调试将不会启用。确保 .NET Core SDK 已安装且位于路径上
- javascript - 将 Array.prototype.every() 的回调更改为箭头函数
- javascript - 使用动态 Redux 状态和 SignalR 反应无状态功能组件