假设我有一组来自 的数字[0, ....., 499]
。目前正在使用 C++ 顺序生成组合std::next_permutation
。作为参考,我拉出的每个元组的大小是 3,所以我返回顺序结果,例如[0,1,2], [0,1,3], [0,1,4], ... [497,498,499]
.
现在,我想并行化它所在的代码,因此这些组合的顺序生成将不再起作用。是否有任何现有的算法可以ith
从 500 个数字中计算 3 的组合?
我想确保每个线程,无论它获得的循环迭代如何,都可以根据i
它正在迭代的计算一个独立的组合。因此,如果我想要i=38
线程 1 中的组合,我可以在线程 2 中[1,2,5]
同时计算为.i=0
[0,1,2]
编辑下面的陈述是无关紧要的,我把自己搞混了
我查看了利用阶乘从左到右缩小每个单独元素的算法,但我不能将这些用作 500!肯定不适合记忆。有什么建议么?