当前位置:  开发笔记 > 编程语言 > 正文

如何使用std :: rand生成一个非重复的随机数序列

如何解决《如何使用std::rand生成一个非重复的随机数序列》经验,为你挑选了1个好方法。

在最后一个例子中读取std :: uniform_int_distribution,生成的序列是:

1 1 6 5 2 2 5 5 6 2

我如何保证所有生成的数字在它们之间有所不同?如果这是可能的,如果我们生成的数字多于游侠大小,那么预期的行为是什么?

我需要这个,因为我必须在cv::Mat数十万(甚至数百万)行中随机选择少量行(比如说10个).



1> Bathsheba..:

当然.对于真正的生成器,获取数字的可能性并不依赖于任何先前的数字.伪随机数生成器试图非常好地模拟这个属性.

如果你想生成没有重复的数字,那么你最好的选择是建立一个解决方案std::shuffle:即定义你想要的数字,然后将它们洗牌.

推荐阅读
php
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有