Tag: 随机种子

rand()在多个函数调用中是一致的

当我尝试从函数调用中生成2个随机数时,我得到重复的结果。 但是, rand()函数在循环中工作正常,或者提供它们不在函数调用之外。 我猜这是因为系统时间和程序很小。 但我不知道如何改变种子。 #include #include #include int test1(){ int randX, randY; int range = 5; srand( time(NULL) ); randX = (rand() % range) + 1; randY = (rand() % 15 ) + 1; printf(“X:%d Y:%d\n”, randX, randY); } int main(){ test1(); test1(); test1(); test1(); test1(); }

是否有使用时间来播种随机数生成的替代方案?

我试图在计算集群中同时运行一段代码(2000个实例左右)的几个实例。 它的工作方式是我提交作业,群集将在节点每隔一段时间打开时运行它们,每个节点有几个作业。 对于使用时间种子的随机数生成中的大量实例,这似乎产生相同的值。 我可以使用一个简单的替代方案吗? 重复性和安全性并不重要,快速生成独特的种子。 什么是最简单的方法,如果可能的话,跨平台方法会很好。