我一直在研究有限域。假设我有一个质数p=7
.所以我得到了一个列表q=[0,1,2,3,4,5,6]
.现在我想要 set q 元素的所有可能排列,用于 7 个位置。例如 [1,1,1,4,6,3,1] 是可能的排列之一。python中是否有任何内置命令可以做到这一点?实际上,我正在使用更大的领域,其中P是127 (p=127).
这些不是排列,因为元素是重复的,这看起来更像是一个产品。
您可以在重复的q
列表中使用itertools.product
(此处为 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
好...听起来不合理。