此代碼需要很長時間才能運行(超過10分鐘)。有什麼方法可以優化它,以便在不到一分鐘內完成?優化MATLAB代碼
clear all;
for i = 1:1000000
harmonicsum = 0;
lhs = 0;
for j = 1:i
% compute harmonic sum
harmonicsum = harmonicsum + 1/j;
% find sum of factors
if (mod(i,j)==0)
lhs = lhs + j;
end
end
%define right hand side (rhs) of Riemann Hypothesis
rhs = harmonicsum + log(harmonicsum) * exp(harmonicsum);
if lhs > rhs
disp('Hypothesis violated')
end
end
關鍵是不要問「 N「的因素是什麼,但是」什麼數字有'j作爲因素「,這更容易。 –