查找和存储组合

时间:2013-04-14 06:25:47

标签: java c++ arrays permutation combinations

我有一个由1位组成的n位数字。我希望用所有可能的组合替换1&0并将组合存储在一个数组中。 我如何找到所有组合? 我想从一个零开始,然后增加数字,如果零将取代1' s。 例如,如果有2个零,那么我将保持一个零的位置固定并移动另一个,直到它到达结束然后我对另一个零执行相同的操作。但是,我必须根除重复的组合。 基本上,这变得越来越复杂。我想知道找到组合的更好方法!

1 个答案:

答案 0 :(得分:3)

您只是想生成n-digit binary numbers。这意味着您可以生成2^n个不同的数字。所以你走了:

  • 首先,计算2^n
  • 实施循环,从0开始,到2^n结束。
  • 对于每个循环变量,将变量作为小数并转换 它为二进制并附加一些前导零(如果需要)来实现它 长度n。
  • 将二进制文件添加到您的排列数组中。