غربال آتکین


عضو شوید


نام کاربری
رمز عبور

:: فراموشی رمز عبور؟

عضویت سریع

نام کاربری
رمز عبور
تکرار رمز
ایمیل
کد تصویری
براي اطلاع از آپيدت شدن وبلاگ در خبرنامه وبلاگ عضو شويد تا جديدترين مطالب به ايميل شما ارسال شود






نام :
وب :
پیام :
2+2=:
(Refresh)

آمار وب سایت:
 

بازدید امروز : 17
بازدید دیروز : 1
بازدید هفته : 18
بازدید ماه : 64
بازدید کل : 65728
تعداد مطالب : 25
تعداد نظرات : 2
تعداد آنلاین : 1



 
غربال آتکین (به انگلیسی: Sieve of Atkin) الگوریتمی برای پیدا کردن اعداد اول است. این روش از غربال اراتوستن سریع‌تر و پیچیده‌تر است.

 پیچیدگی محاسباتی

پیچیدگی محاسباتی این الگوریتم برای محاسبه اعداد اول کوچکتر از N برابر است با ‎O(N / loglogN)‎ عمل جمع و حافظه مورد نیاز برابر با ‎N1 / 2 + o(1)‎ می‌باشد.

شبه‌کد

// arbitrary search limit
limit ← 1000000         

// initialize the sieve
is_prime(i) ← false, i ∈ [5, limit] 

// put in candidate primes: 
// integers which have an odd number of
// representations by certain quadratic forms
for (x, y) in [1, √limit] × [1, √limit]:
    n ← 4x²+y²
    if (n ≤ limit) ∧ (n mod 12 = 1 ∨ n mod 12 = 5):
        is_prime(n) ← ‌is_prime(n)
    n ← 3x²+y²
    if (n ≤ limit) ∧ (n mod 12 = 7):
        is_prime(n) ← ‌is_prime(n)
    n ← 3x²-y²
    if (x > y) ∧ (n ≤ limit) ∧ (n mod 12 = 11):
        is_prime(n) ← ‌is_prime(n)
  
// eliminate composites by sieving
for n in [5, √limit]:
    if is_prime(n):
        // n is prime, omit multiples of its square; this is
        // sufficient because composites which managed to get
        // on the list cannot be square-free
        is_prime(k) ← false, k ∈ {n², 2n², 3n², ..., limit} 

print 2, 3
for n in [5, limit]:
    if is_prime(n): print n

منبع

  1. A.O.L. Atkin, D.J. Bernstein, Prime sieves using binary quadratic forms, Math. Comp., Vol. 73 (2004), 1023-1030.




:: موضوعات مرتبط: مقاله های فارسی , ,
:: بازدید از این مطلب : 1403
|
امتیاز مطلب : 46
|
تعداد امتیازدهندگان : 11
|
مجموع امتیاز : 11
ن : ادیب کوشکی
ت : 13 آذر 1389
مطالب مرتبط با این پست
می توانید دیدگاه خود را بنویسید


(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-52170159-2', 'auto'); ga('send', 'pageview');