生成具有唯一值的排列
Itertools 的排列函数根据位置而不是值将元素视为唯一,从而导致重复。为了解决这一挑战,我们寻求一种算法来避免此类重复。
一种方法涉及利用 sympy 的 multiset_permutations 迭代器。该迭代器在考虑元素值而不是位置的同时生成排列:
>>> import sympy >>> from sympy.utilities.iterables import multiset_permutations >>> list(multiset_permutations([1,1,1])) [[1, 1, 1]] >>> list(multiset_permutations([1,1,2])) [[1, 1, 2], [1, 2, 1], [2, 1, 1]]
这有效解决了重复排列的问题,提供了简洁高效的解决方案。
以上是如何生成具有唯一值的排列,避免重复?的详细内容。更多信息请关注PHP中文网其他相关文章!