【发布时间】:2012-03-10 19:37:21
【问题描述】:
我想开发以下 put 无法正确处理。 我有一个长度为 N 的向量。每个元素可以变成 0 到 K。这里 N 和 K 由用户给定。现在我正在尝试创建一个函数,我可以在其中遍历所有可能的解决方案。
假设 N 为 4 且 K = 2,那么我想遍历所有可能的排列 (?)。
我想用 0000 填充向量,测试它然后用 1000 填充向量,然后测试 0100 等等。
知道 0100 和 0010 是不同的,这一点很重要。 1100 和 0011 等也是如此。
需要特别注意的是,这是循环应该打印的内容(只要出现所有不同的可能序列,0001 或 1000 在 0000 之后等真的没关系)。
0000、1000、0100、0010、0001、1100、1010、1001、1110、1101、0111、0101、.....、2012、2211等。
我尝试了 for 循环的组合,但无法真正做到。 应用程序是 C++
请帮忙,tnx
【问题讨论】:
-
顺序重要吗? (例如,1101 必须在 0002 之前)
-
听起来,对于给定的 N,K... 打印 Base K+1 中的所有 N 位数字
-
也许你应该试试 std::next_permutation?看看stackoverflow.com/questions/4972470/…
-
@innochenti
std::next_permutation所做的事情与他所描述的完全不同。
标签: c++