最近忙公司项目的时候需要实现一个功能
网上的方法多到无从选择,例如洗牌算法等等
后来还是自己弄了一个更加贴切自己需求的接口
—————————————————————————— 下面是正文 ——————————————————————————
再做项目时需求如下:1.从一堆指定范围内随机生成的整数中抽一个数出来进行条件判断。
2.如果这个数符合某个条件则从这堆数中去除,下次再从这堆数中随机抽数的时候就不会再抽到重复数。
3.如果这个数不符合某个条件,则不进行处理。
BYTE Random_Hopper(vector<int> Hopper)
{if (Hopper.size() == 0){return -1;}srand((unsigned)time(NULL));int count = rand()%Hopper.size();BYTE bRet,tmp;tmp = //某个条件判断;if (tmp != ...){Hopper[count] = Hopper.back();Hopper.pop_back();bRet = Random_Hopper(Hopper);}//符合某个条件,从这堆数中去除这个数else bRet = (BYTE)Hopper[count];return bRet;
}
代码核心是:1.Hopper为指定范围内随机生成的整数的容器。
2.去除某个数所选用的方法是使用容器里最后一个数填补重复数,然后再进行递归,一直到所有的数都被剔除。
更多推荐
整数
发布评论