【发布时间】:2021-07-31 10:06:28
【问题描述】:
假设我有 n 个变量,每个变量都有两个值:0 或 1。如果我想枚举所有可能的值组合,那将是 2^n 种可能的组合。我想知道如何以干净简单的方式生成它?
假设 n=4。我们希望生成一个 numpy 数组或类似以下手动生成的示例的类似内容。
[[0 0 0 0]
[0 0 0 1]
[0 0 1 0]
[0 0 1 1]
[0 1 0 0]
[0 1 0 1]
[0 1 1 0]
[0 1 1 1]
[1 0 0 0]
[1 0 0 1]
[1 0 1 0]
[1 0 1 1]
[1 1 0 0]
[1 1 0 1]
[1 1 1 0]
[1 1 1 1]]
请注意,排序很重要。第一列总是查看 col1 = 0 的情况,然后转到 col1 = 1 的情况。然后 col2 考虑 col2 = 0 的情况,假设 col1 = 0,然后 col2 = 1 假设 col1 = 0,然后 col2 = 0 给定 col1 = 1,最后 col2 = 1 给定 col1 = 1。依此类推。基本上我需要这种排序方法来保持不管n。
这可以通过迭代方法解决吗?
【问题讨论】:
标签: python arrays binary iteration enumeration