MATLABのisprimeの速度を比較してみた

以下のソースコードで速度を比較。

  • n=15のとき
    • 自作関数:0.0025
    • isprime:0.0016
  • n=150のとき
    • 自作関数:0.0049
    • isprime:0.0064

なお自作のmyisprimeで計算できるのはn=170程度まで

n = 15;
count = 0;

t1Start=tic;
for i = 1:n
    disp([i, myisprime(i)]);
    count = count + myisprime(i);
end

disp(['count ->,', num2str(count)]);
t1 =toc(t1Start);
count=0;
t2Start=tic;
for i=1:1:n
    disp([i, isprime(i)]);
    count = count + isprime(i);
end
disp(['count ->,', num2str(count)]);
t2=toc(t2Start);

t1
t2
function p = myisprime(n)
    k = factorial(n-1) + 1;
    p = floor(cos(pi*k/n)^2);
end

コメント

タイトルとURLをコピーしました