【发布时间】:2020-02-10 07:40:25
【问题描述】:
我有一个号码n,它的最大值直到1_000_000
我必须用 li=range(0,n) 创建一个列表并找到 2 个项目的排列
我正在使用此代码
from itertools import permutations
perm = permutations(li,2)
for i in list(perm):
print(i)
此代码适用于 n 的小值
但如果它的数量很大,我会收到超出时间限制的错误
如何在不使用外部库的情况下解决这些超时错误
【问题讨论】:
-
你的最终目标是什么?排列是为了解决我 bliv 的问题,那么问题是什么?说明它可能有助于提供一种更好的排列方式
-
您的程序正在尝试打印
n!/(n-2)!排列。对于您的n = 1000_000,这是 9.99999 × 10¹¹ ≈ 2⁴⁰。虽然这在计算上并非不可行,但非常不切实际。 -
Python 本身不会抛出这样的错误,但可能是一些编码挑战网站。您的程序究竟有哪些限制?你到底想做什么?
标签: python-3.x list permutation