-4
在Python中,我创建了一个包含prufer序列的数组,即一个由0到n-1之间的整数组成的长度为n-2的数组。例如,(3,4,3,1,2)对于n = 7是一个箴言序列。我事先不知道。我想要创建一个prufer序列,用这个prufer序列做一些事情,创建另一个序列,用新序列做一些事情,等等。通过所有可能的prufer序列的最快方法
我想知道生成所有n ^(n-2)prufer序列的最快方法。
在Python中,我创建了一个包含prufer序列的数组,即一个由0到n-1之间的整数组成的长度为n-2的数组。例如,(3,4,3,1,2)对于n = 7是一个箴言序列。我事先不知道。我想要创建一个prufer序列,用这个prufer序列做一些事情,创建另一个序列,用新序列做一些事情,等等。通过所有可能的prufer序列的最快方法
我想知道生成所有n ^(n-2)prufer序列的最快方法。
你似乎在寻找range
0<=x<n-1
的cartesian product,功能itertools.product
会为你做到这一点:
for seq in itertools.product(range(n-1), repeat=n-2):
do_stuff(seq)
如果我理解正确的话,一个普吕弗序列是'范围(N-1)'在python中,所有可能的序列将会在你的例子中我想你只想要['itertools.product'](https:// docs)之后'[range(i-1)for i in range(1,n)]' –
(范围(n-1),重复= n-2)' –
我认为这些评论是非常好的,并且在有人回答性能/最佳算法之前问题可能对e很好用@TadhgMcDonald-Jensen的建议来应对这个问题,这样我们就能知道是否有更快捷的方法...... – Dilettant