Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 生日问题-N中至少有2个_Java_Birthday Paradox - Fatal编程技术网

Java 生日问题-N中至少有2个

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

我收到了一个修改过的生日问题- 我需要运行一个函数,返回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));
    }
}
公共班级生日{
公共静态双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;