0
我有此代碼可以查找構成合法單詞的一組字母的所有排列組合。如何在使用ParallelTable時防止這些警告
>>Combinatorica`
Module[{str = "abc", chars, len, r, check},
chars = Characters[str];
len = StringLength[str];
r = Range[len];
check[n_Integer] :=
DictionaryLookup[{"BritishEnglish",
StringJoin[chars[[UnrankPermutation[n, r]]]]}, 1];
DistributeDefinitions[check, chars, r];
ParallelTable[check[i], {i, 1, len!}]]
我驗證過,如果我用表代替ParallelTable,我得到這個:
{{}, {}, {}, {"cab"}, {}, {}}
隨着ParallelTable,但是,除了這一結果,我也得到警告,這樣的:
Part::pspec: Part specification Combinatorica`UnrankPermutation[1,{1,2,3}] is neither a machine-sized integer nor a list of machine-sized integers.
Part::pspec: Part specification Combinatorica`UnrankPermutation[2,{1,2,3}] is neither a machine-sized integer nor a list of machine-sized integers.
StringJoin::string: String expected at position 1 in StringJoin[{a,b,c}[[Combinatorica`UnrankPermutation[1,{1,2,3}]]]].
StringJoin::string: String expected at position 1 in StringJoin[{a,b,c}[[Combinatorica`UnrankPermutation[2,{1,2,3}]]]].
這些警告似乎來自內核7及更高版本。我的猜測是計算達到了這些內核,並且沒有任何數據,因爲只有6個排列,並且導致它們吐出這些警告。
我的理解是否正確?我如何防止這些警告?