Java 生日问题-N中至少有2个
我收到了一个修改过的生日问题- 我需要运行一个函数,返回N个人中至少有两个人共享同一个生日的概率。然后 计算最小n的主函数,使该概率至少为0.5。 我试图写一个,但唯一的输出是0或1,我希望调试或指出我做错了什么。 以下是我所做的:Java 生日问题-N中至少有2个,java,birthday-paradox,Java,Birthday Paradox,我收到了一个修改过的生日问题- 我需要运行一个函数,返回N个人中至少有两个人共享同一个生日的概率。然后 计算最小n的主函数,使该概率至少为0.5。 我试图写一个,但唯一的输出是0或1,我希望调试或指出我做错了什么。 以下是我所做的: public class Birthday { public static double probSameBirthday(int n) { double days = 1 / 365; // number of days
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));
}
}
公共班级生日{
公共静态双probSameBirthday(int n){
双倍天数=1/365;//天数
int i,person=0;//总人数
双noProb=0;
int人=n;
对于(i=2;i而言,由于评论,我的回答如下:
改天为
double days = 1.0 / 365.0;
及
到noProb=(noProb*(1-(1人)*天));
返回到return(1-noProb);
它现在运行与中的计算器相同,我看不到任何人或人的生日的集合/数组。int days=1/365;
:这相当于int days=0
。int是整数类型,1/365是整数除法。n是用户在main中解析时输入的任意给定n检查days的值!是一个整数,这个只能容纳整数。我把天数改为双倍-仍然不起作用
the noProb =(1-( noProb * (1- (person-1)*days)))/100;