首页 > 解决方案 > 如何定义具有所有可能数字组合的数组

问题描述

我想定义一个具有给定列数(假设 n = 5)的数组,并且在数组的每个单元格中,值可以是 0 或 1。我想创建所有可能的 1 和 0,这意味着,每一行将代表一个具有 n 个元素的可能向量。

换句话说,我希望表格看起来像这样:

在此处输入图像描述

我知道创建 1 和 0 的向量非常容易,但我如何确保向量不会在表中重复并且包含所有可能的组合(如果我的数学正确,表应该有 2**5 = 32 行)

我怎样才能在 Python 中做到这一点?非常感谢你

标签: pythonarrayscombinations

解决方案


使用 itertools 很容易:

itertools.product(*[[0, 1]] * 3)

结果是

[(0, 0, 0),
 (0, 0, 1),
 (0, 1, 0),
 (0, 1, 1),
 (1, 0, 0),
 (1, 0, 1),
 (1, 1, 0),
 (1, 1, 1)]

推荐阅读