私はこのコミュニティの新しいメンバーであり、Pythonの新しいユーザーです。繰り返しのない4つのグループの要素を組み合わせる
私はコンセプトレベルとコーディングレベルの両方で少し問題に直面しています。
私は8つの同一要素の11グループを持っています(実生活では、2つの綿パッドをそれぞれ4つに分けて、合計8個、11人のドナーに掛けました。すなわち臭気コレクション研究)、:
AAAAAAAA BBBBBBBB CCCCCCCC ... MMMMMMMM
私は4つの異なるドナー片、例えばを組み合わせることにより、超ドナーパッドを形成するために、今持っているABCD、ABCE、CDEFなど...新しい要素の4つの要素は、同じドナーからの要素を含むべきではありません(例えば、AABCまたはABDDは許されません)。そして、断片が使用されている場合はもちろん、別の超ドナーパッドを形成する。 手作業で頭を打つことなく、グループの形成を自動的に許可するものをコーディングして、そのカウントを失う危険がありました。
繰り返しのない組み合わせの場合ですか? 私は、上記のような行列を作成し、20個(必要な上ドナーパッドの数)の4要素の空のグループ(リスト?)を作成し、次にランダムに選択するループマトリックスのCij要素を空のリストに移動し、次に選択する要素に進みますが、それが以前のグループで選択されていない別のタイプとピースであることを確認します(たとえば、グループに同じ要素を別のグループで使用しないでください)。 4要素グループがいっぱいになり次の4要素グループに移動するまで続きます
私はこれを行う時間がほとんどないので、助けを求めています。そうでなければ、間違いを犯して学習しようとします。 提案がありますか?
EDIT:既に作成4-素子群を有するテーブルの例及び使用される様々な要素に使用される第8部の部品の数(それらの一部はもちろん、事前になり)
事前に洞察を提供していただき、ありがとうございます。
いくつかのサンプル入力と期待される結果の例を挙げてください。私はitertools builtinsが十分かもしれないと思う。 –
こんにちは@JackEvans、素早い応答のおかげで。あなたの質問に答えることができれば、結論のイメージを添付しました。もう一度お返事をください –
あなたは各グループからほぼ同じに多くを選ぶという要件はありますか? – JohanL