使用C从范围中随机数

时间:2015-11-10 08:02:41

标签: c

我有一个大问题,我不明白。

我需要从间隔中生成随机数。

我正在使用代码:

unsigned int nahodnyCisloZIntervalu(unsigned int min, unsigned int max) {
    int r;
    const unsigned int range = 1 + max - min;
    const unsigned int buckets = RAND_MAX / range;
    const unsigned int limit = buckets * range;

    do {
        r = rand();
    } while (r >= limit);

    return min + (r / buckets);
}

但每次启动程序时都会生成相同的数字!

如何生成真正的随机数usnig C

1 个答案:

答案 0 :(得分:2)

使用标准rand功能。 rand每次返回相同的序列是正常的。

使用程序开头的srand函数,使用“种子”初始化随机数生成器,例如使用当前时间作为种子。