我一直在研究有限域。假设我有一个素数p=7
。所以我得到了一份清单q=[0,1,2,3,4,5,6]
。现在我想要集合 q 的元素的所有可能排列7 个位置。例如 [1,1,1,4,6,3,1] 是可能的排列之一。python中是否有任何内置命令可以做到这一点?实际上,我正在与 P 所在的更大领域合作127 (p=127).
问问题
63 次
1 回答
1
这些不是排列,因为元素是重复的,这看起来更像是一个产品。
您可以itertools.product
在重复q
列表中使用(此处为 3 个元素):
import itertools
q=[0,1,2] # or q = list(range(3))
for z in itertools.product(*(q,)*len(q)): # using arg unpacking like if it was (q,q,q)
z = list(z) # to convert as list
print(z)
印刷:
[0, 0, 0]
[0, 0, 1]
[0, 0, 2]
[0, 1, 0]
[0, 1, 1]
[0, 1, 2]
...snip...
[2, 2, 0]
[2, 2, 1]
[2, 2, 2]
因为p=3
它打印3**3 = 27
值。如果p=127
好……听起来不合理。
于 2018-06-13T13:37:23.890 回答