ホームページ  >  記事  >  バックエンド開発  >  Python ですべての可能なセット パーティションを生成するにはどうすればよいでしょうか?

Python ですべての可能なセット パーティションを生成するにはどうすればよいでしょうか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-06 01:57:02734ブラウズ

How can we generate all possible set partitions in Python?

Python でパーティションを設定する

Python では、セットのパーティションは、その和集合が元のセットである互いに素なサブセットのコレクションです。配列 [1,2,3] について考えてみましょう。配列のすべての要素を使用して可能なすべての組み合わせを生成し、[[1]、[2]、[3]]、[[1,2]、[3]] などのパーティションを生成することを目指しています。

これを達成するために、私たちは再帰的アプローチを採用します。 「n-1」要素パーティションの場合、「n」番目の要素を組み込むときに、既存のサブセットに割り当てるか、新しいサブセットを作成するかの 2 つのオプションがあります。この徹底的なプロセスにより、すべての有効なパーティションが確実に生成されます。

たとえば、配列 [1,2,3] をパーティション化してみましょう。単一要素の基本ケースから始めて、[[1]] が得られます。次の要素に移動して、[1] パーティションの各サブセットに 2 を挿入し、結果は [[2], [1]] になります。また、新しいサブセット [[2,1]] も作成します。

引き続き再帰的に、要素 3 をパーティションに組み込みます。 [[2], [1]] パーティションの各サブセットに 3 を挿入し、[[3,2], [1]] と [[2,3], [1]] を生成します。また、新しいサブセット [[3,1],[2]] も作成します。

このパターンに従って、配列の可能なすべてのパーティションを徹底的に生成します。結果の出力は次のようになります:

[[1], [2], [3]]
[[1,2], [3]]
[[1], [2,3]]
[[1,3], [2]]
[[1,2,3]]

以上がPython ですべての可能なセット パーティションを生成するにはどうすればよいでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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