1

我有一个仅由 1 组成的 n 位数。我想在所有可能的组合中用 0 替换 1,并将这些组合存储在一个数组中。如何找到所有组合?我正在考虑从一个零开始,然后增加将替换 1 的零的数字。例如,如果有 2 个零,那么我将保持一个零的位置固定并移动另一个,直到它到达末尾,然后我会对另一个零做同样的事情。但随后我将不得不根除重复的组合。基本上,这变得越来越复杂。我想知道找到组合的更好方法!

4

1 回答 1

3

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

  • 首先,计算2^n
  • 实现一个循环,从 开始到0结束2^n
  • 对于每个循环变量,将变量作为十进制并将其转换为二进制并附加一些前导零(如果需要)以使其长度为 n。
  • 将二进制文件添加到您的排列数组中。
于 2013-04-14T06:31:32.047 回答