#include <iostream>
#include <cstdlib>
#include <cmath>
#include <ctime>
using namespace std;
int main()
{
srand(time(0));
int n=6000;
double *y =new double[n],*x = new double[n];
double a,ymax,ymin,dy,lambda=0.5;
int i,k;
int h[30];
for (i=0; i<n; i++)
{
while(1)
{
a=((double)rand() / (double)RAND_MAX);
if (a>0) break;
}
x[i]=a;
y[i]=(-1.0/lambda)*log(x[i]);
}
ymax=ymin=y[0];
for (i=1; i<n; i++)
{
if (y[i]>ymax) ymax=y[i];
if (y[i]<ymin) ymin=y[i];
}
dy=(ymax-ymin)/30;
for (i=0; i<30; i++) h[i]=0;
for (i=0; i<n; i++)
{
k=(int)((y[i]-ymin)/dy);
h[k]++;
}
for (i=0; i<30; i++)
cout << ymin+i*dy << " " << h[i] << endl;
delete [] y;
delete [] x;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y3N0ZGxpYj4KI2luY2x1ZGUgPGNtYXRoPgojaW5jbHVkZSA8Y3RpbWU+CiAKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAppbnQgbWFpbigpCnsKICAgIHNyYW5kKHRpbWUoMCkpOwogCiAgICBpbnQgbj02MDAwOwogCiAgICBkb3VibGUgKnkgPW5ldyBkb3VibGVbbl0sKnggPSBuZXcgZG91YmxlW25dOyAgICAKICAgIGRvdWJsZSBhLHltYXgseW1pbixkeSxsYW1iZGE9MC41OwogICAgaW50IGksazsKICAgIGludCBoWzMwXTsKICAgIAogICAgZm9yIChpPTA7IGk8bjsgaSsrKQogICAgewogICAgICAgIHdoaWxlKDEpCiAgICAgICAgewogICAgICAgICAgICBhPSgoZG91YmxlKXJhbmQoKSAvIChkb3VibGUpUkFORF9NQVgpOwogICAgICAgICAgICBpZiAoYT4wKSBicmVhazsKICAgICAgICB9CiAgICAgICAgeFtpXT1hOwogICAgICAgIHlbaV09KC0xLjAvbGFtYmRhKSpsb2coeFtpXSk7CiAgICB9CiAKICAgIHltYXg9eW1pbj15WzBdOwogICAgCiAgICBmb3IgKGk9MTsgaTxuOyBpKyspCiAgICB7CiAgICAgICAgaWYgKHlbaV0+eW1heCkgeW1heD15W2ldOwogICAgICAgIGlmICh5W2ldPHltaW4pIHltaW49eVtpXTsKICAgIH0KIAogICAgZHk9KHltYXgteW1pbikvMzA7CiAgICAKICAgIGZvciAoaT0wOyBpPDMwOyBpKyspIGhbaV09MDsKICAgIAogICAgZm9yIChpPTA7IGk8bjsgaSsrKQogICAgewogICAgICAgIGs9KGludCkoKHlbaV0teW1pbikvZHkpOwogICAgICAgIGhba10rKzsKICAgIH0KIAogICAgZm9yIChpPTA7IGk8MzA7IGkrKykgCiAgICAgICAgY291dCA8PCB5bWluK2kqZHkgPDwgIiAiIDw8IGhbaV0gPDwgZW5kbDsKIAogICAgZGVsZXRlIFtdIHk7CiAgICBkZWxldGUgW10geDsKICAgIHJldHVybiAwOwp9