小编lou*_*ios的帖子

Java生日悖论算法

我做了一个着名的生日悖论的小实现,试图找到两个随机生日(这里是1到365之间的整数)之间的碰撞第一次.但它总是返回一个值,比如40和70,这根本不符合统计数据.我的算法或随机int生成器都有问题吗?感谢您的反馈意见.

这是代码:

public static void main(String[] args){
    int[] birthday = new int[200];

    for(int i = 0; i<20;i++){
        Collision(birthday); 
    }
}

public static int Collision(int birthday[]){
    Random rand = new Random();  
    for(int i = 1; i<birthday.length;i++){        
        birthday[i] = rand.nextInt(365);
    }

    int count = 0;        
    for(int i = 0; i<birthday.length; i++){          
        for(int j= i+1 ; j<birthday.length; j++){            
            if (birthday[i] == birthday[j]){               
                count++;
            }            
        }          
    }

    System.out.print(count+" ");        
    return count;  
}
Run Code Online (Sandbox Code Playgroud)

这是ex的输出:

45 50 60 52 53 53 50 49 37 68 52 …

java random algorithm

2
推荐指数
1
解决办法
2129
查看次数

标签 统计

algorithm ×1

java ×1

random ×1