3

我需要在 Python 中生成大量列表。每个列表的长度为 13,每个元素都有 4 个可能的值。这些是 [1, -1, i, -i],但也可以是任何值。

因此,鉴于主题中的信息,我应该得到 4 * 4 * 4 ... * 4 = 4^13 = 67,108,864 个列表,或者更一般地说,m^n。

我尝试了 Python 的 itertools 中的 combination_with_replacement 方法,但是使用以下代码我只得到 560 个结果。

c = it.combinations_with_replacement([1,-1,np.complex(0,1), np.complex(0,-1)], 13)
print list(c)

我知道组合不关心顺序,所以这个结果可能是正确的。但是,当我改用 permutations 方法时,我只能选择第二个参数 <= 第一个参数中的元素数。

知道如何做到这一点吗?

谢谢!

4

1 回答 1

7

我想你想要

y = itertools.product((1, -1, 1j, -1j), repeat=13)


然后,顺便说一句,如您所料,print sum(1 for x in y)打印, 。67108864

于 2010-10-05T01:37:34.260 回答