我目前正在比较Python3和C中的两个循环计算。对于Python,我有以下内容:
# Python3
t1 = time.process_time()
a = 100234555
b = 22333335
c = 341500
for i in range(1, 10000000001):
a = a - (b % 2)
b = b - (c % 2)
print("Sum is", a+b)
t2 = time.process_time()
print(t2-t1, "Seconds")
然后在C语言中,我做同样的事情:
#include <stdio.h>
int main() {
long long a = 100234555;
long long b = 22333335;
long long c = 341500;
for(long long i = 1; i <= 10000000000; i++){
a = a - (b % 2);
b = b - (c % 2);
}
printf("Sum is %lld\n", a+b);
return 0;
}
我对Python和C代码进行了计时。Python的计时约为3500秒,而C语言的计时(包括编译和执行)仅需约0.3秒。
我想知道为什么时间差别如此之大。执行是在一台配备有100 GB内存和足够处理能力的服务器上完成的。
%2
替换为&1
会产生不同的功能。%2
的结果是1,0,-1
,而&1
的结果是1,0
。 - chux - Reinstate Monicaprintf("%d\n", -1%2);
请参阅“mod”和“remainder”的区别是什么?。 - chux - Reinstate Monica