随机数相关

  注意,在使用随机函数 rand() 之前,必须先初始化随机种子

srand((unsigned)time(NULL));

1、产生一个随机整数,包含于 [min,max] 

int get_random_num(int min, int max)
{
    return rand() % (max - min + 1) + min;
}

2、产生一个指定精度的随机浮点数,包含于 [min,max],精度为保留小数点后 precision 位。

float get_random_num(float _min, float _max, int precision)
{
    int precision_num = pow(10,precision);
    int min = (int)(_min*precision_num);
    int max = (int)(_max*precision_num);
    int random = get_random_num(min, max);
    return random / (float)precision_num;
}

3、从集合中,随机取出指定数量的元素。

//从vector<T>中随机取出一些元素,组装成新的vector返回
std::vector<T> get_random_from_vector(std::vector<T> in_vect, int count)
{
    std::vector<T> out_vect;
    int size = in_vect.size();
    for(int i = 0; i < count; i++)
    {
        int index = get_random_num(0,size - 1 - i);
        out_vect.push_back(in_vect[index]);
        in_vect[index] = in_vect[size - 1 - i];
    }
    return out_vect;
}
原文地址:https://www.cnblogs.com/tianyajuanke/p/4698597.html