Python优化算法

时间:2015-08-03 13:00:28

标签: python math numpy optimization

我在python中有代码片段,长时间使用长数组:

n =30000
t = range(1,n)
s = sum(t)
for i in t:
  for j in t[i:]:
    if ts-j == i*j:
      //some simple code

有没有办法优化它?我已经检查过diff和multiply花了很多时间。我试过numpy但结果最糟糕。

澄清:条件很少得到满足 - 肯定不到10,所以它根本不影响性能。这将只是简单的assignemt。问题在于if条件和算术运算的大数字。

1 个答案:

答案 0 :(得分:1)

由于您没有指定ts是什么,我们必须假设它是一个整数常量。

内循环的条件是ts - j == i * j,只有在i + 1j除以ts时才有可能。

因此,您应该考虑ts并生成满足(i + 1) . j的所有分解1 ≤ i ≤ j ≤ n