c - C中数字的排列

标签 c algorithm permutation combinatorics factorial

我正在尝试编写一个 C 函数来列出一组数字的所有排列,以五个为一组,包括重复数字:

15-11-49-43-5
2-30-34-6-11

所以很容易编写一个函数来获取数字集的所有排列并将它们扔掉,但是映射到特定的组大小,我有点卡住..

最佳答案

void visit(int *Value, int N, int k)
{
  static level = -1;
  level = level+1; Value[k] = level;

  if (level == N)
    print(Value, N);
  else
    for (int i = 0; i < N; i++)
      if (Value[i] == 0)
        visit(Value, N, i);

  level = level-1; Value[k] = 0;
}

更多信息您可以访问http://www.bearcave.com/random_hacks/permute.html

关于c - C中数字的排列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3765215/

相关文章:

sql - 不同于排列的 PostgreSQL 组合

c - OpenMP 中的缩减操作在幕后是如何工作的?

c - 在结构中填充

c stdout 到 stdin 实时

c++ - std::sort 不适用于重载 < 运算符的用户定义对象

c++ - 在堆栈中执行 POP 时下溢的异常处理

c - 获取 X11 中当前事件修改器的状态

algorithm - 确定树中两个随机节点之间的距离

python - 如何对暴力进行密码的所有排列?

Python 排列仅限于递增的数字