我想讓下面的代碼快速。這需要很長時間才能運行,我得到這個錯誤:如何快速創建這個MATLAB代碼(m文件腳本)?
Warning: FOR loop index is too large. Truncating to 2147483647.
我需要計算超過3^100所以...是不可能的?
function sodiv = divisorSum(n)
sodiv = 0;
for i=1:n
if (mod(n,i) == 0)
sodiv = sodiv + i;
end
end
end
function finalSum1 = formular1(N,n)
finalSum1 = 0;
for k = 1:N
finalSum1 = finalSum1 + (divisorSum(k) * divisorSum(3^n*(N-k)));
end
end
Nv=100;
nv=[1:20];
for i=1:length(nv)
tic;
nfunc1(i)=formular1(Nv,nv(i));
nt1(i)=toc;
sprintf('nt1 : %d finished, %f', i,nt1(i))
end
這段代碼的目的是檢查算法的計算時間。
如果它的功課,然後'3^100'取這麼大大抵如此你不能計算它的暴力(至少不是沒有專門的軟件) – 2012-08-06 06:35:23