我正在寻找一种仅计算一半可能排列的算法。例如元素 abc 具有以下排列:
美国广播公司
ab
背书
bca
出租车
中央银行
当一个排列与另一个排列相反(以相反的顺序)时,它们被认为是相同的。例如,(abc) ~ (cba)。我需要算法只计算一半的排列。在这种情况下,这将是 (abc) (acb) (bac) 或 (cba) (bca) (cab)。我想不同的 3 组也是可能的,具体取决于算法。
我试过搜索这个算法,我发现所有使用包含函数和置换索引的语言特定算法。我需要一个通用的伪代码。我正在使用 VB.NET
谢谢 !