该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
想R语言与matlab循环时间对比,到底相差多少,不看不知道,一看吓一跳:
1)R语言
t1=Sys.time()
a=NULL
for(i in 1:1000){
for(j in 1:1000){
for (k in 1:1000){
m= 1000- i - j-k
if(i < j & j< k& k< m & i^2 + j^2 + k^2 == m^2)
a = rbind(a,c(i,j, k,m))
else
next
}
}
}
t2=Sys.time()
t2-t1
由于不愿再等,我们中途中断,看一下时间和结果:
> t2=Sys.time()
> t2-t1
Time difference of 3.698698 mins
> a
[,1] [,2] [,3] [,4]
[1,] 2 205 370 423
[2,] 3 288 296 413
[3,] 10 145 410 435
[4,] 10 236 340 414
[5,] 10 265 314 411
[6,] 14 198 369 419
[7,] 16 166 392 426
[8,] 18 285 290 407
[9,] 24 128 414 434
[10,] 25 214 350 411
[11,] 30 120 416 434
2)matlab
tic;
a=[];
for i=1:1000
for j=1:1000
for k=1:1000
m=1000-i-j-k;
ifi
a=[a;i,j,k,m];
end
end
end
end
a
toc
结果:
a =
2 205 370 423
3 288 296 413
10 145 410 435
10 236 340 414
10 265 314 411
14 198 369 419
16 166 392 426
18 285 290 407
24 128 414 434
25 214 350 411
30 120 416 434
40 160 383 417
45 50 450 455
50 226 325 399
56 232 316 396
62 184 352 402
64 127 392 417
74 124 388 414
75 236 300 389
80 100 400 420
80 120 387 413
80 264 270 386
84 144 368 404
90 170 345 395
94 149 358 399
96 206 312 386
100 244 275 381
105 150 350 395
120 155 336 389
120 200 300 380
130 140 340 390
140 210 276 374
150 225 254 371
164 223 244 369
175 200 256 369
Elapsed time is 75.991171 seconds.
后记:有时间,再用python来对比一下看看。