java实现生日相同概率

假设所有年份都只有365天,求n个人中,出现生日相同的概率。

输入n
输出相同的概率(保留3位有效数字即可)


import java.util.*;

public class X
{
	// n个人出现生日相同概率
	static double f(int n)
	{
		final int W = 1000 * 100;  //总的实验次数
		
		int w = 0; // 出现相同生日的次数
		for(int i=0; i<W; i++)
		{
			Set set = new HashSet();
			for(int j=0; j<n; j++)
			{
				int r = (int)(Math.random() * 365);	 // 随机的生日
				set.add(r);
			}
			
			if(set.size()<n) w++;
		}
		
		return 1.0 * w / W;
	}
	
	public static void main(String[] args)
	{
		System.out.println(f(30));	
	}
}
原文地址:https://www.cnblogs.com/a1439775520/p/13076914.html