c++ - 如何创建一个非常大的唯一整数数组?

标签 c++ arrays random numbers

我的并行编程类(class)的部分作业是创建一个包含 3.13 亿个唯一整数的文件。我想我会将两个随机数相乘以获得非常大的范围,但是检查唯一性的最佳方法是什么?

我是否应该创建一个数组并每次都在该数组中搜索匹配项?这似乎效率很低。

编辑 - 问题是最终对列表进行排序(使用线程/多核),因此顺序列表不起作用。

最佳答案

您可以按顺序填充文件 - 生成的文件如下所示:

0 1 2 3 4 5 6 7 8 9 ... 312999999

这些数字生成起来非常简单,并且保证是唯一的。

关于c++ - 如何创建一个非常大的唯一整数数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10527443/

相关文章:

c++ - 请帮助我理解这个带有参数的 C++ 参数声明

c++ - ostream.write 将额外的字节写入缓冲区

python - 在 NumPy 中操作数组元素

javascript - Angular JS - 使用相同 ng-model 基于多个对象属性的 ng-repeat 过滤对象数组

java - 数独计数子字段

python - 从列表中互斥随机抽样

c++ - 使用 clang 的 CMake 显示 undefined symbol ,并且使用 cl 正确链接

c++ - 如何在 Netbeans 中为 C++ 制作应用程序图标

从大小为 n 的数组中随机生成一组 m 个整数

javascript - 灵活使用 Math.random