C语言中的快速随机数发生器?

C语言中的快速随机数发生器?,c,random,C,Random,为什么在while循环中运行random()函数时不需要种子,但在while循环外运行时需要种子?我正在尝试快速连续地生成随机数。代码: #包括 #包括 #包括 内部主(空) { 最小整数;最大整数; printf(“输入随机最小值和随机最大值:”); 扫描频率(“%d%d”、&min和&max); srand(时间(空)); int ran_num=rand()%max+min; printf(“随机数是%d\n”,ran\u num); 返回0; } 您可以这样设置种子:srand(tim

为什么在while循环中运行random()函数时不需要种子,但在while循环外运行时需要种子?我正在尝试快速连续地生成随机数。

代码:

#包括
#包括
#包括
内部主(空)
{
最小整数;最大整数;
printf(“输入随机最小值和随机最大值:”);
扫描频率(“%d%d”、&min和&max);
srand(时间(空));
int ran_num=rand()%max+min;
printf(“随机数是%d\n”,ran\u num);
返回0;
}

您可以这样设置种子:
srand(time(NULL)),为什么使用随机函数?

“当我在while循环之外运行它时,它需要一个种子?”是不正确的。发布您的代码以了解更多详细信息。如果您没有提供种子,则每次都会得到相同的半随机数集(不是非常随机的…),请提供。标准C库中没有random()函数。@S.M.-POSIX--返回
long
。(但不在标准中是正确的)快速随机数生成器:提示代码只回答问题,通常对其他人没有帮助。请解释代码解决的问题?
rand()%max+min
无法生成[min…max]。偶数
rand()%(最大最小值+1)+min(max-min)>RAND_max
或溢出时,代码>会失败。类似的转换也会使值偏向较小的值(即,即使您开始使用统一生成器,之后也不会统一),请解释您可以使用代码实现的功能。