【发布时间】:2009-12-15 13:23:07
【问题描述】:
我正在寻找一个函数,它以数字 x(假设为 15)、位数 d (4) 和排列数 作为输入米 (2)。该函数的输出将是从给定数字 x 以 d 位长度排列的 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...
-
@Eagle 这个链接有帮助吗? graphics.stanford.edu/~seander/bithacks.html#NextBitPermutation
标签: c++ statistics combinatorics permutation