gpt4 book ai didi

c++ - 生成不是彼此镜像的排列

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:12:53 25 4
gpt4 key购买 nike

我想生成 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)。有没有这样的算法或方法来检查生成的排列是否是先前生成的排列的镜像?

最佳答案

使用 std::next_permutation 并忽略第一个元素大于最后一个元素的排列。

关于c++ - 生成不是彼此镜像的排列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19081579/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com