使用随机数生成器种子的系统时间

时间:2017-09-26 12:49:12

标签: c arrays random

我正在创建一个随机数生成器,从数组中选取随机数。我习惯使用Java而不必担心srand种子。如何让我的程序使用系统时间作为种子,因此每次运行我的程序时都会为随机数生成器提供新的种子(时间)。

1 个答案:

答案 0 :(得分:0)

像这样:

#include <time.h>
#include <stdlib.h>
#include <stdio.h>
int main()
{
    srand(time(0));

    /* use it: */
    printf("%d\n", rand());
    printf("%d\n", rand());
    printf("%d\n", rand());
    printf("%d\n", rand());
}

time_t time(time_t *tloc);会返回time_t(通过其返回值,如果不是tloc则返回NULL),这是真实的(内置,整数浮点)类型。 void srand(unsigned seed);需要unsigned。真实类型将以某种方式转换为unsigned。在这种情况下,只要你在不同的时间点结束不同的unsigned s,转换的机制就不重要了。