zoukankan      html  css  js  c++  java
  • 随机数相关

      注意,在使用随机函数 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;
    }
  • 相关阅读:
    超大文件排序
    透彻理解迪杰斯特拉算法
    Floyd-傻子也能看懂的弗洛伊德算法(转)
    轻松实现在浏览器上播放本地视频
    Caffeine缓存处理
    每日日报94
    每日日报93
    下载安装SQL server2008的步骤
    每日日报92
    每日日报91
  • 原文地址:https://www.cnblogs.com/tianyajuanke/p/4698597.html
Copyright © 2011-2022 走看看