64,281
社区成员
发帖
与我相关
我的任务
分享
#include<iostream>
#include<stdlib.h>
#include<ctime>
using namespace std;
int main()
{
int n,i2,j2,nu=0;
double h,d;//h为d组中有重复的组数
h=0;
cin>>n;
float sp=1;//方法一所得结果
double sp2;//方法二所得结果
for(int i1=0;i1<n;i1++)
sp*=(365-i1)/365.0;
cout<<"方法一所得结果"<<sp<<endl;
int *p1=new int[n];
for(d=0;d<100;d++)
{
srand(time(NULL));
for(i2=0;i2<n;i2++)
{
p1[i2]=rand() % 364 + 1;
}
for(i2 = 0; i2 < n ; i2++ )
{
for( j2 = i2+1 ; j2 < n ; j2++ )
{
if( p1[j2] == p1[i2])
{
nu = 1;
h++;
break;
}
}
if( nu == 1 )
{
nu = 0;
break;
}
}
}
sp2=1-h/d;
cout<<"方法二所得结果"<<sp2<<endl;
return 0;
}