gpt4 book ai didi

c++ - 根据位数集计算组合

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

我需要计算在 0<=r<=n 的时间选择 r 的 n 个事物的所有可能组合,一种方法是生成 0 到 2^n-1 之间的数字。但是我需要生成这些数字,以便根据该数字中设置的位数对数字进行排序。对于 n=3:

0         // numbers with 0 bits set

1 2 4 // numbers with 1 bits set

3 5 6 // numbers with 2 bits set

7 // numbers with 3 bits set

我需要知道如何生成数字,以便它们按位集的递增/递减顺序排序?

最佳答案

实现常规算法以生成组合,但还保存一个额外的数组,您可以在其中存储根据 1 位集排序的数字。然后,对于生成的每个组合,将数字替换为位于相应位置的数字减去我描述的排序数组中的一个。

关于c++ - 根据位数集计算组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14562286/

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