【C++】如何随机生成整数不重复进行取用

编程入门 行业动态 更新时间:2024-10-28 02:27:51

最近忙公司项目的时候需要实现一个功能

网上的方法多到无从选择,例如洗牌算法等等

后来还是自己弄了一个更加贴切自己需求的接口

——————————————————————————                      下面是正文     ——————————————————————————

再做项目时需求如下: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.去除某个数所选用的方法是使用容器里最后一个数填补重复数,然后再进行递归,一直到所有的数都被剔除。

更多推荐

整数

本文发布于:2023-05-26 18:25:23,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/275499.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:整数

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!