【问题标题】:c++ m bits permutations of a numberc ++ m位数字的排列
【发布时间】:2009-12-15 13:23:07
【问题描述】:

我正在寻找一个函数,它以数字 x(假设为 15)、位数 d (4) 和排列数 作为输入米 (2)。该函数的输出将是从给定数字 xd 位长度排列的 m 位排列的所有数字。

对于给定的数字,(x = 15, d = 4 and m = 2) 我们得到6=\binom{4}{2}不同数字的组合.

我想知道这种函数是否已经存在于 C++ STD 或 boost 等中,它会返回这些数字...

附: 如果你知道一个函数返回所有排列的数字直到 m.

问候

【问题讨论】:

  • 标准 C++ 中没有这样的功能。此外,我闻到家庭作业的味道......
  • 那么,d 是不是除了ceil(log2(x))
  • 即使在 Boost 中,我也没有遇到过。您必须为它编写自己的自定义函数。
  • @DevSolar,不,它不是硬件。我在硕士论文中使用的程序需要这种功能。 @Mike D。不。在这个例子中,我选择了 x=15,但我可以选择 x = 0 和 d = 4...

标签: c++ statistics combinatorics permutation


【解决方案1】:

我再次查看了来自@Gregory Pakosz 的评论,我发现开始的方向还不错。我尝试在我的程序中实现来自Bit Twiddling Hacks 的建议代码,并且在我的代码中出现一些错误之后它起作用了。

谢谢

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-25
    • 2023-03-24
    • 1970-01-01
    相关资源
    最近更新 更多