【问题标题】:Finding and storing combinations查找和存储组合
【发布时间】:2013-04-14 06:25:46
【问题描述】:

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

【问题讨论】:

  • 以二进制形式打印从 0 到 2^(n) 的数字,即 n 位的答案

标签: java c++ arrays permutation combinations


【解决方案1】:

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

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

【讨论】:

  • 如果需要,我不能附加前导以使其长度为 n 吗?
猜你喜欢
  • 1970-01-01
  • 2016-04-04
  • 1970-01-01
  • 1970-01-01
  • 2019-12-27
  • 1970-01-01
  • 2016-07-20
  • 2019-03-16
  • 1970-01-01
相关资源
最近更新 更多