我正在使用 Linux random() 函数在 CentOS 5.2 中生成随机消息。我想在 3 次随机调用后重置种子。换句话说,我希望在第 1 次通话和第 4 次通话中有相同的输出。有没有办法将 rand() 函数设置为初始状态?或者你知道我能做的任何其他功能吗?
问问题
1741 次
2 回答
1
如果你只想重复三个随机数,那么将三个连续的随机数存储在一个数组中,然后重复你的心。
int rand_arr[3];
int i;
srandom(time(NULL)); // Not the best way, but I'm lazy.
for(i = 0; i < 3; i++)
{
rand_arr[i] = rand();
}
for(i = 0; i < 10000; i++)
{
printf("%d\n", rand_arr[i % 3];
}
于 2013-02-12T18:09:44.883 回答
1
您可以简单地记住种子,然后使用它来重置。在 C 中是这样的:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
int seed = time(NULL);
int i;
for (i = 0; i < 10; i++) {
if (!(i % 3)) {
srandom(seed);
}
printf("%d\n", random());
}
}
于 2013-02-12T17:33:42.597 回答