C ++随机实用程序被重新初始化,导致重复输出

时间:2017-10-26 19:00:20

标签: c++ random

我在实用程序命名空间中创建了一个函数来生成一个随机数,以防止重复的代码片段。不幸的是,它不是随机的,因为它每次调用时都会重新初始化变量,因此当我循环某些东西时,它会从时间(0)得到相同的输出,因此值相同。

由于我的经验有限,我不知道如何修复它,因为单身人士因为不是一个班级而无法申请。

#ifndef UTILS_INT_HEADER_INCLUDED
#define UTILS_INT_HEADER_INCLUDED

#include <iostream>
#include <random>
#include <ctime>

namespace utils
{
    static int random(int min, int max, int seed) {
        std::default_random_engine generator;
        generator.seed(seed);
        std::uniform_int_distribution<int> dist(min, max);
        return dist(generator);
    }

    static int random(int max) {
        return random(0, max, time(0));
    }

    static int random(int min, int max) {
        return random(min, max, time(0));
    }
}

#endif

0 个答案:

没有答案