我应该如何正确播种srand()

时间:2017-01-02 19:55:37

标签: c random seed

我有这些代码片段:

char letrarand()
{
    time_t t;
    srand(time(NULL));                                                  
    char randomletter = 'A' + (rand() % 26);
    return randomletter;
}

char criameses()
{
    int contador = 0;
    for (contador = 0; contador < 31;++ contador) 
        {
            *(pjaneiro + contador) = letrarand();
        }

其中pjaneiro是指向31个元素数组的指针。理论上这可以工作,并会为数组的每个元素分配一个随机字母,但事实证明它总是分配相同的字母。

我最好猜测为什么会发生这种情况是time()函数只精确到一秒钟,因此随机数生成器的种子始终是相同的,因为我的计算机在不到一秒的时间内执行代码。有没有办法让我更好地为随机数生成器播种?

0 个答案:

没有答案