zoukankan      html  css  js  c++  java
  • LightOJ

    题意:一些时候一些数学理论难以去信服。一个比较寻常的问题是(生日悖论)。假设你在一个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
    ", ++c, m);
    	}	
    
    	return 0;
    }
    
  • 相关阅读:
    【转】JVM 堆内存设置原理
    【转】Java八种基本数据类型的比较及其相互转化
    8月12日
    并发与竞争
    高通gpio配置输出
    创建一个字符设备的基本流程
    4月2号 字符设备驱动实验
    3.30学习遇到卡死点
    断言函数的用法
    12.02 下午
  • 原文地址:https://www.cnblogs.com/pixel-Teee/p/13256341.html
Copyright © 2011-2022 走看看