我想弄清楚是否可以加快排列的生成。具体来说,我使用 [az] 中的 8 个,我想使用 [a-zA-Z] 中的 8 个和 [a-zA-Z0-9] 中的 8 个。我知道这将很快占用大量时间和空间。即使只是小写 ASCII 字符的长度为 8 的排列也需要一段时间并生成千兆字节。我的问题是我不理解底层算法,所以我无法开始弄清楚我是否可以将问题分解成更小的任务,然后再合并在一起。我用来生成排列列表的 python 脚本:import stringimport itertoolsfrom itertools import permutationscomb = itertools.permutations(string.ascii_lowercase, 8)f = open('8letters.txt', 'w')for x in comb: y = ''.join(x) f.write(y + '\n')f.close()有谁知道如何将其划分为子任务并稍后将它们组合在一起?有可能吗?我可能只是尝试一种(可能)更快的方法,但是我在使用 C++ 及其 std::next_permutation() 时遇到了麻烦,所以我无法验证它是否可以加快速度。如果我能把它分成 16 个任务,并在 16 个 Xeon CPU 上运行,然后加入结果,那就太好了。
添加回答
举报
0/150
提交
取消