大家帮忙看一下,出现啥问题了,怎么出现那么多结果
#include <iostream>#include <time.h>
#include <stdlib.h>
#include<math.h>
using namespace std;
double printc()
{
srand((int)time(0));
double P;
double c=0, d=1;
P=(double)rand()/RAND_MAX*(d-c)+c;
cout<<P<<endl;
return 0;
}
int main()
{
double X,Y,M,R,a,U;
scanf("%f",&a);
double e=2.718;
double b=(a+e)/e;
do
{
R=printc();
U=printc();
Y=b*R;
if(Y<=1)
X=pow(Y,1/a);
else X=-log(exp((b-Y)/a));
if(0<X&&X<=1)
M=pow(X,a-1);
else if(X>1)
M=pow(e,-X);
else
M=0;
}
while(U<=M);
printf("N=%f\n",X);
}