在R-Pi上生成C中的随机数

时间:2014-03-23 16:49:42

标签: c raspberry-pi

我正在尝试使用raspberry pi在C中生成一个简单的随机数。代码编译得很好,但在运行时,数字不是随机的,每次都是384。

我哪里错了?

#include <stdio.h>
#include <stdlib.h>

int main(void)

{
    printf ("Random number generator\n") ;

    int x = (rand() % 1000) + 1;
    printf("%d\n", x);
    return 0 ;
}

2 个答案:

答案 0 :(得分:3)

您需要为随机数生成器播种一些自然随机的值,如当前时间。类似的东西:

srand (time(NULL));

更新:请注意,如果您使用上面的示例,则需要为时间库添加一个include:

include <time.h>

答案 1 :(得分:0)

使用此函数生成随机值。还要确保添加库包括

  //    Random value will be from 0 to #
int GenerateRandomInt (int MaxValue)
{
    unsigned int iseed = (unsigned int)time(NULL);          //Seed srand() using time() otherwise it will start from a default value of 1
    srand (iseed);
    int random_value = (int)((1.0 + MaxValue) * rand() / ( RAND_MAX + 1.0 ) );      //Scale rand()'s return value against RAND_MAX using doubles instead of a pure modulus to have a more distributed result.
    return(random_value);
}