【发布时间】:2016-06-02 21:01:52
【问题描述】:
我目前正在开发一个程序来测试理想的角度值来构建某些东西。现在我被困在一个嵌套循环中,我将附在下面。虽然理想情况下它将每个 'a' 计数为 9000,但如果值设置如下,则几乎需要永远。有没有办法加快这个嵌套循环?或者我可以以某种方式为 python 分配更多资源吗?
for a1 in xrange(15, 91):
for a2 in xrange(15, 91):
for a3 in xrange(15, 91):
for a4 in xrange(15, 91):
for a5 in xrange(15, 91):
for ite in xrange(1, 1000):
ok = mathmatvec(a1, a2, a3, a4, a5, ite)
if ok == 1:
v[0] = a1
v[1] = a2
.
.
【问题讨论】:
-
您确定需要检查所有
76 * 76 * 76 * 76 * 76 * 999=2532989850624= 2.5 万亿 个组合吗?即使要执行的操作什么都不是(将语句体的最后一个替换为“pass”),它仍然需要“几乎永远”。 -
mathmatvec() 是做什么的?该函数的时间复杂度?
-
它计算多个向量和矩阵乘法。如果只单独使用一次,它不会花费很多时间。有关更多详细信息,请参阅我对 Rory Daulton 的回复
-
让它成为一个函数,并在它之前添加
@numba.jit -
如果您寻找高维度的参数,您可能希望使用随机搜索甚至是损失标准的最小化