【发布时间】:2011-03-31 18:31:41
【问题描述】:
我正在学习C,发现rand()很奇怪,可能是因为它的随机性:p
我有下面的代码,它总是输出1,有什么问题吗?您将如何修改代码以使其完成工作?
干杯,
#include <stdlib.h>
double rand_double()
{
double ret = (double)rand();
return ret/(RAND_MAX+1);
}
int sample_geometric_rv(double p)
{
double q;
int n = 0;
do
{
q = rand_double();
n++;
} while (q >= p);
return n;
}
int main()
{
int ans = sample_geometric_rv(0.1);
printf("Output %d\n", ans);
return 0;
}
【问题讨论】: