我想弄清楚是否可以加快排列的生成。具體來說,我使用 [az] 中的 8 個,我想使用 [a-zA-Z] 中的 8 個和 [a-zA-Z0-9] 中的 8 個。我知道這將很快占用大量時間和空間。即使只是小寫 ASCII 字符的長度為 8 的排列也需要一段時間并生成千兆字節(jié)。我的問題是我不理解底層算法,所以我無法開始弄清楚我是否可以將問題分解成更小的任務,然后再合并在一起。我用來生成排列列表的 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 上運行,然后加入結(jié)果,那就太好了。
可以并行生成排列嗎?
慕的地6264312
2021-08-14 20:59:18