python和c ++程序之间异常的速度差异

时间:2014-12-01 17:53:52

标签: python c++ python-2.7

我用C ++和Python编写了相同的程序。在Python中,它花费了不寻常的时间(实际上我没有得到答案)。谁能解释为什么会这样?

C ++代码:

#include<iostream>
using namespace std;
int main(){
    int n = 1000000;
    int *solutions = new int[n];
    for (int i = 1; i <= n; i++){
        solutions[i] = 0;
    }

    for (int v = 1; v <= n; v++){
        for (int u = 1; u*v <= n; u++){
             if ((3 * v>u) & (((u + v) % 4) == 0) & (((3 * v - u) % 4) == 0)){
                solutions[u*v]++;
            }
        }
    }
    int count = 0;
    for (int i = 1; i < n; i++){
        if ((solutions[i])==10)
        count += 1;
    }
    cout << count;
}

Python代码:

n=1000000
l=[0 for x in range(n+1)]
for u in range(1,n+1):
    v=1
    while u*v<n+1:
         if (((u+v)%4)==0) and (((3*v-u)%4)==0) and (3*v>u):
            l[u*v]+=1
         v+=1

l.count(10)

1 个答案:

答案 0 :(得分:0)

您可以尝试优化此循环,例如将其设为单个块,其中没有ifs,或者在C中使用模块。 C ++编译器可以实现Python运行时的优化,因此对于纯粹的解释器,您将永远无法获得性能。 1M的交互很多,我从那个范围内的任何翻译开始,你最好在浏览器和JavaScript中做这件事。