【问题标题】:All combinations fourteen item array所有组合十四项数组
【发布时间】:2013-11-01 20:29:21
【问题描述】:

所以我有一个包含十四个项目的数组。每个项目可以是 0 或 1。我正在寻找一些帮助来找出这些数字的每个组合。我已经尝试过 itertools 但我似乎无法让它像我想要的那样工作。我的意思的一个例子就是这个。

   for i in range(0, 15):
       if i%2 == 0:
            array1.append(b)
       else:
            array1.append(c)

   for i in range(0, 14):
for L in range(14, 15):
    for subset in itertools.combinations(array1, L):
        if s != str(subset):
            s = str(subset)
            y += 1
                print(subset)

这是代码,但明显的问题是数组按照 l 然后 r 的确切顺序填充,但我需要的是每个都可以互换。

加起来是十四。有没有人知道如何做到这一点?

【问题讨论】:

  • 这不是一个例子 - 这是一个输入 ;-) 请给出一个 small 示例输入和你想要的确切输出。
  • 发布您尝试过的代码。请给出输入/输出示例
  • 你的例子到底怎么加起来是 14?
  • 已编辑。不加起来 14 只需要 14 个元素。我试图让数组中的每个项目为 L 或 R 并获得每个项目的所有可能组合

标签: python arrays list combinations


【解决方案1】:

你可以使用itertools.product:

itertools.product([0, 1], repeat=14)

您可以通过以下方式获得这些结果的列表:

list(itertools.product([0, 1], repeat=14))

或者您可以通过以下方式遍历所有可能性:

for item in itertools.product([0, 1], repeat=14):
    print item

【讨论】:

    【解决方案2】:

    一个简单的方法是从0计数到(1 << 14) - 1,然后考虑计数器的所有二进制数字;在 Python 中:

    for i in xrange(1 << 14):
        bits = [(i >> k) & 1 for k in xrange(14)]
        ... use bits array ...
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-02-11
      • 2020-02-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多