阅读 std::uniform_int_distribution在最后一个例子中,生成的序列是:
1 1 6 5 2 2 5 5 6 2
如何保证所有生成的数字在它们之间是不同的?如果这是可能的,如果我们生成的数字多于护林员大小,预期的行为是什么?
我需要这个,因为我必须在具有数十万(甚至数百万)行的 cv::Mat
中随机选择少量行(比如 10 行)。
最佳答案
当然。对于 true 生成器,获得数字的可能性不依赖于任何先前的数字。伪随机数生成器试图非常好地模拟此属性。
如果您想生成没有重复的数字,那么最好的办法是围绕 std::shuffle
制定解决方案:即定义您想要的数字,然后将它们打乱。
关于c++ - 如何使用 std::rand 生成非重复的随机数序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41770067/