题意:一些时候一些数学理论难以去信服。一个比较寻常的问题是\(生日悖论\)。假设你在一个23个人的房间里,包括你自己。那么至少2个人的生日相同的概率为\(50\%\),你被给予了一年的的天数,假设你在不同的星球,比如,火星,一年是669天。你需要去寻找你至少要邀请的人数,使得有2个人的生日相同的概率至少为0.5。

分析:容斥原理,至少有两个人的生日相同的概率为0.5,那么从侧面考虑,\(1 - 每个人生日都不相同的概率 >= 0.5\),每个人生日都不同的概率为\(\frac{n - 1}{n}*\frac{n - 2}{n} * \frac{n - 3}{n}*...*\frac{n - m + 1}{n}\),那么每个人生日都不同的概率为\(\frac{n - 1}{n}*\frac{n - 2}{n} * \frac{n - 3}{n}*...*\frac{n - m + 1}{n} <= 0.5\)

#include <iostream>
#include <cstdio>
#include <cstring>
#include <vector>
#include <algorithm>

using namespace std;

int main()
{
	int t;
	scanf("%d", &t);

	int c = 0;
	while (t--)
	{
		int n;
		scanf("%d", &n);

		double p = 1.0;
		int m;
		for (int i = n; i >= 1; --i)
		{
			p = p * (i - 1) / n;

			if (p <= 0.5)
			{
				m = 1 + n - i;
				break;
			}
		}
		printf("Case %d: %d\n", ++c, m);
	}	

	return 0;
}