我想让下面的代码快速。这需要很长时间才能运行,我得到这个错误:如何快速创建这个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