我想生成 n 个数字的排列,其中没有两个排列是相互反转的(从最后一个字符读取到第一个字符的第一个与第二个相同)。例如,n = 3,我想生成:
1 2 3 //but not 3 2 1
1 3 2 //but not 2 3 1
2 1 3 //but not 3 1 2
我不在乎将生成两者中的哪一个。该算法应适用于较大的 n (>20)。有没有这样的算法或方法来检查生成的排列是否是先前生成的排列的镜像?
我想生成 n 个数字的排列,其中没有两个排列是相互反转的(从最后一个字符读取到第一个字符的第一个与第二个相同)。例如,n = 3,我想生成:
1 2 3 //but not 3 2 1
1 3 2 //but not 2 3 1
2 1 3 //but not 3 1 2
我不在乎将生成两者中的哪一个。该算法应适用于较大的 n (>20)。有没有这样的算法或方法来检查生成的排列是否是先前生成的排列的镜像?