int rand_n(int n)
{
assert(n>=0 && n<=RAND_MAX);
int k=rand();
int M=RAND_MAX/n*n;
while (k>=M)
{
k=rand();
}
return k%n;
}
随机生成[0,n)(n<=RAND_MAX)的数
本文介绍了一个简单的随机数生成算法,该算法确保了生成的随机数在指定范围内均匀分布。通过循环调用rand()函数直到得到满足条件的随机数,再对其进行取模运算,最终返回所需的随机数。

被折叠的 条评论
为什么被折叠?



