生日问题

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

输入n

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

算法分析:n个人的生日是随机的一共有365的n次方种,都不同的种数是365对n进行全排列,然后用1减去即可。

#include <iostream>

#include <stdio.h>

#include <stdlib.h>

using namespace std;

int main()

{

  float sum=1,n,i1;

  char  str[10];

  cin>>n;

 

  for(int i=365;i>365-n;i--)

   {

      i1=i;

      sum=sum*i1/365;

   }

  i1=1-sum;

  if(i1<0.001) printf("%.6f",i1);

  else if( i1<0.01) printf("%.5f",i1);

  else if(i1<0.1) printf("%.4f",i1);

  else printf("%.3f",i1);//当n太大时就不对啦

  return 0;

}


猜你喜欢

转载自blog.csdn.net/lytwy123/article/details/80261122