• LightOj_1104 Birthday Paradox


    题目链接

    题意:

      若一年有n天, 问至少需要多少个人才能满足其中两个人生日相同的概率大于等于0.5?

    思路:

      经典问题:生日悖论

      换成其互斥事件:m个人, 每个人生日都不相同的概率 ≤ 0.5 时最小人数。

      这就是邮票收集问题的变形:每个邮票至少出现一次的概率 小于等于 0.5

      等价于:

          找到最小的n, 使得:H[n] = (n / n + (n - 1) / n + (n - 2) / n + ... + 1 / n) <= 0.5

    代码:

      

     1 #include <cmath>
     2 #include <cstdio>
     3 #include <cstring>
     4 #include <cstdlib>
     5 #include <ctime>
     6 #include <set>
     7 #include <map>
     8 #include <list>
     9 #include <queue>
    10 #include <string>
    11 #include <vector>
    12 #include <fstream>
    13 #include <iterator>
    14 #include <iostream>
    15 #include <algorithm>
    16 using namespace std;
    17 #define LL long long
    18 #define INF 0x3f3f3f3f
    19 #define MOD 1000000007
    20 #define eps 1e-6
    21 #define MAXN 100010
    22 #define MAXM 380
    23 double f[MAXN];
    24 int n;
    25 void init()
    26 {
    27     double x, y;
    28     double m;
    29     f[0] = 0;
    30     f[1] = 1;
    31     for(int i = 2; i < MAXN; i ++)
    32     {
    33         m = i;
    34         y = i - 1.0;
    35         x = 1.0;
    36         for(int j = 1; j < MAXM; j ++)
    37         {
    38             x = x * y;
    39             x /= m;
    40             y --;
    41             if(x <= 0.5)
    42             {
    43                 f[i] = j;
    44                 break;
    45             }
    46         }
    47     }
    48 }
    49 
    50 int main()
    51 {
    52     int T;
    53     int kcase = 0;
    54     init();
    55     scanf("%d", &T);
    56     while(T --)
    57     {
    58         scanf("%d", &n);
    59         printf("Case %d: %.0lf
    ", ++kcase, f[n]);
    60     }
    61     return 0;
    62 }
    View Code
  • 相关阅读:
    JavaScript if 条件语句
    JavaScript while 循环
    JavaScript for 循环
    JavaScript 字典
    JavaScript 数组
    JavaScript 函数
    JavaScript 定时器
    JavaScript 字符串操作
    CEF js调用C#封装类含注释
    多网卡的环境下的发包
  • 原文地址:https://www.cnblogs.com/By-ruoyu/p/4725694.html
Copyright © 2020-2023  润新知