【问题标题】:linux random functionlinux随机函数
【发布时间】:2013-01-28 02:14:24
【问题描述】:

我在 CentOS 5.2 中使用 Linux random() 函数来生成随机消息。我想在 3 次随机调用后重置种子。换句话说,我希望在第 1 次调用和第 4 次调用中具有相同的输出。有没有办法将 rand() 函数设置为初始状态?或者你知道我能做的任何其他功能吗?

【问题讨论】:

  • 你用什么语言做这个? C?

标签: c linux function random centos5


【解决方案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());
    }
}

【讨论】:

    【解决方案2】:

    如果你只想重复三个随机数,那么将三个连续的随机数存储在一个数组中,然后重复你的心。

    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];
    }
    

    【讨论】:

      猜你喜欢
      • 2011-06-23
      • 1970-01-01
      • 2014-04-27
      • 2016-07-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-02
      • 2014-03-27
      相关资源
      最近更新 更多