【C语言】随机数种子的设置

C中,利用rand(),产生多组随机数(1——33)一组6个,初始化为srand(time(0)); 在利用for循环产生多组随机数的过程中,最初的几组随机数略显随机,因为初始化之后的开始产生的数是随机的,但是在连续产生200组随机数的时候,后来的随机数组就会出现相邻组相似,或者差别不大。 根据个人理解呢,是因为在连续执行随机数的过程中,由于系统时间变化过慢,而随机数产生时间迅速,造成系统时间变化相对较少,因此产生多组的随机数的时候显得不够随机。 于是我决定在初始化种子的时候设置为srand(time(0)*time(0));,结果又稍微有了改进,前面好几组数有了随机的身影。但是还是显得不够标准。 问题:怎么设置种子,是引入的变量更多,运算更复杂,初始化的时候更显随机以至于结果更随机。 我是新手,表达不是很清楚,还请高手指点迷津啊!
2026年09月17日 21:38
有1个网友回答
网友(1):

我以前学过一点这方面的知识,不知道能不能帮到你。
我记得srand这个函数是用来产生一个范围的,他应该是从一个标准时间开始到现在时间所持续的秒数的这么一个范围。
然后rand函数是从这个范围中进行随机取值。他的返回值是0至RAND_MAX之间的随机数值,RAND_MAX定义在stdlib.h中。具体多少不记得了。。