gpt4 book ai didi

c++ - 是否有类似 next_permutation 的函数,但用于重复排列?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:38:35 27 4
gpt4 key购买 nike

我想做的是找到一维数组的每个排列及其内容的重复。

例如

int array[]={1,2,3};
for(i=0;i<3;i++){
next_permutation(array,array+3)
for(int j=0;j<=3;j++){
printf("%d ",array[j]);
}
printf("\n");
}

将返回:

1 2 3
1 3 2
2 1 3
etc...

我希望函数返回什么:

1 1 1
1 1 2
1 2 1
2 1 1
1 2 2
2 2 1
2 1 2
1 1 3
1 3 1
3 1 1
etc...

是否有一个函数可以做到这一点?

提前致谢, 埃里克

最佳答案

您不是在进行排列,而只是在计数。

例。如果您的枚举集 {0, 1} 超过 3 位数,您将得到:

000
001
010
011
100
101
110
111

看,这只是二进制计数。

因此将您的元素集映射到 n 位数字,然后基于 n 的计数将为您提供正确的 awnser

关于c++ - 是否有类似 next_permutation 的函数,但用于重复排列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9854132/

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