Pastebin

New pastes are no longer accepted · Stats

Latest Pastes

struct rand_init
{
    rand_init()
    {
        static bool initialized;

        if (!initialized)
        {
            initialized = true;
            init();
        }
    }

    void init() const
    {
        std::srand(std::time(0));
    }
};

rand_init rand_init_instance;

static unsigned long long_rand()
{
#if RAND_MAX < 65535
    return (std::rand() & 0xFF) << 24 | (std::rand() & 0xFF) << 16 | (std::rand() & 0xFF) << 8 | (std::rand() & 0xFF);
#else
#if RAND_MAX < 4294967295
    return (std::rand() & 0xFFFF) << 16 | (std::rand() & 0xFFFF);
#else
    return std::rand() & 0xFFFFFFFFU;
#endif
#endif
}

int rand(int min, int max)
{
    return int(double(long_rand()) / 4294967296.0 * double(max - min + 1) + double(min));
}


double rand(double min, double max)
{
    return double(long_rand()) / 4294967296.0 * (max - min) + min;
}