可能な順列の半分だけを計算するアルゴリズムを探しています。たとえば、要素 abc には次の順列があります。
abc
acb
バック
紀元前
タクシー
cba
順列が別の順列の反対 (逆順) である場合、それらは同じであると見なされます。たとえば、(abc) ~ (cba) です。順列の半分だけを計算するアルゴリズムが必要です。この場合、それは (abc) (acb) (bac) または (cba) (bca) (cab) のいずれかになります。アルゴリズムによっては、3 つの異なるセットも可能だと思います。
私はこのアルゴリズムを検索しようとしましたが、順列インデックス付きの組み込み関数を使用して言語固有のアルゴリズムを見つけました。一般的な擬似コードが必要です。私はVB.NETで作業しています
ありがとうございました !