Delphi (Object Pascal) で次のアルゴリズムを次のように実装する方法:
- 各英数字項目は単一のオブジェクトになります (私の場合はファイル文字列への参照)。
- 各ピック状態/組み合わせを列挙 (出力) できるようにします。
- そろばんの柱を想像してみてください。すべて同じサイズです (ベースに応じて)。サイズの異なる列が必要です。(私の場合、サイズの異なるファイル文字列のセット)
最終編集: Python intertools implementationを参照してください。
他の言語の同様のアルゴリズム: c#、ruby 、java、php
アルゴリズム
次のセットとそのメンバーを検討してください。
S1 = {a1, a2, a3, a4, a5}
S2 = {b1、b2、b3、b4}
S3 = {c1, c2, c3, c4, c5}
各セットの最初のメンバーを選択します (P = Pick States):
P1 = {a1, b1, c1}
次に、最初の値を限界までインクリメントします。
P2 = {a2, b1, c1} P3 = {a3, b1, c1} P4 = {a4, b1, c1} P5 = {a5, b1, c1}
次に、最初のセットをリセットし、2 番目のセットを「1」インクリメントします。
P6 = {a1, b2, c1}
最初のセットを再びインクリメントします... など... 3 番目のセットの「プラス 1」ごとに 1 番目と 2 番目のセットをリセットします。
P7 = {a2、b2、c1}
カウントの基本原理または乗算の原理に関して、このアルゴリズムは 100 の選択状態/組み合わせを生成します。
P100 = {a5、b4、c5}