ホームページ >バックエンド開発 >Python チュートリアル >重複を避けて一意の値を持つ順列を生成するにはどうすればよいですか?

重複を避けて一意の値を持つ順列を生成するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-17 06:20:25768ブラウズ

How Can I Generate Permutations with Unique Values, Avoiding Duplicates?

一意の値による順列の生成

Itertools の順列関数は、要素を値ではなく位置に基づいて一意に扱うため、重複が発生します。この課題に対処するために、そのような重複を回避するアルゴリズムが模索されています。

1 つのアプローチには、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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。