我有一个列表[5] [5]来填充...它看起来像一个包含5列和5行的表。 每个单元格可以是一个或零。 我想找到可能存在的不同2 ^ 25的可能性。每个可能性是5 * 5表/列表中0或1的组合
我该怎么做?使用嵌套循环还是什么?
答案 0 :(得分:3)
我建议您先从1x1 list
开始,然后检查是否可以显示两种可用的组合:
[[0]]
[[1]]
接下来,尝试2x2 list
。显示有16个不同的list
:
[[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]]
如果您的算法适用于1x1和2x2,那么您应该能够将其概括为打印5x5。
祝你好运!既然你似乎还在苦苦挣扎,这里有一点额外的帮助。
将此问题分解为更小的问题。我首先要生成值。如果您忽略上面示例中的list
符号,您将看到值的序列是地球上每个计算机科学家都能识别的值。使用bin()
和str.zfill()
在Python中生成也很容易。
第二个问题是将它们放入list
。这也不是太难。假设序列中的第一个值是'0000'。您知道您的list
是两行两列。您可以将前两个字符放入列表中,并将该列表放入列表中。然后将接下来的两个字符放入一个列表中,并将该列表附加到前一个列表中。完成。对序列中的每个值重复。
希望这有帮助。
答案 1 :(得分:0)
你可以尝试:
import itertools
gen = itertools.product((0,1),repeat=25)
创建生成器以获取1d中的所有组合,然后根据需要重新整形数据。