Minggu, 08 November 2026
11:12 WIB
TERKINI
Bandar Lampung Agenda Strategis Pemprov Lampung 6 November 2026: Revitalisasi Stadion Jadi Prioritas Bandar Lampung Harga Beras di Pasar Pasir Gintung Bandar Lampung Merangkak Naik, Stok Aman Bandar Lampung Disdag Bandar Lampung Jamin Pasokan Beras Aman hingga Akhir 2026 Insight Komitmen Pembangunan Negeri, PTBA Sabet Penghargaan Kepatuhan PNBP ESDM 2026 Pemprov Lampung Gubernur Mirza Canangkan Mulang Maya Jadi Magnet Wisata Budaya Unggulan Lampung Tuba Barat Mewujudkan Haji: Pemkab Tubaba dan BSI Ajak Masyarakat Menabung Sejak Dini Lampung Timur Bupati Ela Dekatkan Diri dengan Siswa, Pastikan Kualitas Pendidikan dan Gizi di Lampung Timur Tuba Barat Kemitraan Strategis Pemkab Tubaba dan Kejari: Wujudkan Tata Kelola Pemerintahan Akuntabel Bandar Lampung Mantan Ketua DPRD Lampung Bersaksi dalam Sidang Arinal Djunaidi Bandar Lampung Senator Bustami Zainudin dan Staf DPD Lampung Ikuti Program Cek Kesehatan Gratis Bandar Lampung Agenda Strategis Pemprov Lampung 6 November 2026: Revitalisasi Stadion Jadi Prioritas Bandar Lampung Harga Beras di Pasar Pasir Gintung Bandar Lampung Merangkak Naik, Stok Aman Bandar Lampung Disdag Bandar Lampung Jamin Pasokan Beras Aman hingga Akhir 2026 Insight Komitmen Pembangunan Negeri, PTBA Sabet Penghargaan Kepatuhan PNBP ESDM 2026 Pemprov Lampung Gubernur Mirza Canangkan Mulang Maya Jadi Magnet Wisata Budaya Unggulan Lampung Tuba Barat Mewujudkan Haji: Pemkab Tubaba dan BSI Ajak Masyarakat Menabung Sejak Dini Lampung Timur Bupati Ela Dekatkan Diri dengan Siswa, Pastikan Kualitas Pendidikan dan Gizi di Lampung Timur Tuba Barat Kemitraan Strategis Pemkab Tubaba dan Kejari: Wujudkan Tata Kelola Pemerintahan Akuntabel Bandar Lampung Mantan Ketua DPRD Lampung Bersaksi dalam Sidang Arinal Djunaidi Bandar Lampung Senator Bustami Zainudin dan Staf DPD Lampung Ikuti Program Cek Kesehatan Gratis

Tapis Atkin

Bagikan:

Dalam matematika, tapis Atkin adalah algoritme modern untuk menemukan semua bilangan prima sampai dengan bilangan bulat yang ditentukan. Dibandingkan dengan tapis Eratosthenes yang kuno, yang menandai kelipatan dari bilangan prima, Tapis Atkin melakukan beberapa pekerjaan awal dan kemudian menandai kelipatan kuadrat dari bilangan prima, sehingga mencapai teori kompleksitas asimtotik yang lebih baik. Tapis Atkin dibuat pada tahun 2003 oleh A. O. L. Atkin dan Daniel J. Bernstein.[1]

Algoritma

Dalam algoritma:

  • Semua sisanya adalah modulo, enam puluh sisa (bagi nomor dengan 60 dan kembalikan sisanya).
  • Semua angka, termasuk x dan y, adalah bilangan bulat positif.
  • Membalik entri dalam daftar tapis berarti mengubah tanda (prima atau nonprima) ke tanda yang berlawanan.
  • Ini menghasilkan bilangan dengan bilangan ganjil solusi ke persamaan yang sesuai berpotensi menjadi bilangan prima (bilangan prima jika juga bebas kuadrat), dan bilangan dengan bilangan genap solusi yang digabungkan.

Algoritma:

  1. Buat daftar hasil, diisi dengan 2, 3, dan 5.
  2. Buat daftar saringan dengan entri untuk setiap bilangan bulat positif; semua entri dari daftar ini pada awalnya harus ditandai non prime (komposit).
  3. Untuk setiap nomor entri n dalam daftar saringan, dengan sisa modulo-enam puluh r:
    1. Jika r adalah 1, 13, 17, 29, 37, 41, 49, atau 53, balikkan entri untuk setiap kemungkinan solusi ke 4x2 + y2 = n. Jumlah operasi pembalikan sebagai rasio terhadap kisaran penyaringan untuk pendekatan langkah ini 4√π15[1] × 860 (angka "8" dalam pecahan berasal dari delapan modulos yang ditangani oleh kuadrat ini dan 60 karena Atkin menghitungnya berdasarkan jumlah genap modulo 60 roda), yang menghasilkan pecahan sekitar 0.1117010721276....
    2. Jika r adalah 7, 19, 31, atau 43, balikkan entri untuk setiap solusi yang mungkin ke 3x2 + y2 = n. Jumlah operasi pembalikan sebagai rasio terhadap kisaran penyaringan untuk pendekatan langkah ini π√0.12[1] × 460 (angka "4" dalam pecahan berasal dari empat modulos yang ditangani oleh kuadrat ini dan 60 karena Atkin menghitungnya berdasarkan jumlah genap modulo 60 roda), yang menghasilkan pecahan sekitar 0,072551974569....
    3. Jika r adalah 11, 23, 47, atau 59, balikkan entri untuk setiap kemungkinan solusi ke 3x2 − y2 = n jika x > y. Jumlah operasi pembalikan sebagai rasio terhadap kisaran penyaringan untuk pendekatan langkah ini √1.92ln(√0.5+√1.5)[1] × 460 (angka "4" dalam pecahan berasal dari empat modulos yang ditangani oleh kuadrat ini dan 60 karena Atkin menghitungnya berdasarkan jumlah genap modulo 60 roda), yang menghasilkan sebagian kecil sekitar 0,060827679704....
    4. Jika r adalah sesuatu yang lain, abaikan sepenuhnya.
  4. Mulailah dengan angka terendah dalam daftar tapis.
  5. Ambil bilangan berikutnya dalam daftar tapis yang masih bertanda prima.
  6. Sertakan nomor dalam daftar hasil.
  7. Kuadratkan angka tersebut dan tandai semua kelipatan persegi tersebut sebagai bukan prima. Perhatikan bahwa kelipatan yang dapat difaktorkan dengan 2, 3, atau 5 tidak perlu diberi tanda, karena ini akan diabaikan pada pencacahan akhir prima.
  8. Ulangi langkah empat sampai tujuh. Jumlah total operasi untuk pengulangan penandaan bilangan prima ini sebagai rasio rentang penyaringan adalah jumlah dari balikan bilangan prima yang dikuadratkan, yang mendekati fungsi zeta prima (2) dari 0,45224752004... minus 122, 132, dan 152 untuk bilangan prima yang telah dieliminasi oleh roda, dengan hasil dikalikan dengan 1660 untuk rasio pukulan roda per rentang; ini menghasilkan rasio sekitar 0,01363637571....

Menambahkan rasio operasi di atas bersama-sama, algoritma di atas mengambil rasio konstan dari operasi pembalikan / penandaan ke kisaran penyaringan sekitar 0.2587171021...; Dari implementasi aktual algoritma, rasionya sekitar 0,25 untuk rentang penyaringan serendah 67.

Kode semu

Berikut ini adalah kode semu yang menggabungkan algoritma Atkin 3.1, 3.2, dan 3.3[1] dengan menggunakan gabungan set "s" dari semua bilangan modulo 60 tidak termasuk yang merupakan kelipatan dari bilangan prima 2, 3, dan 5, sesuai dengan algoritma, untuk versi langsung dari algoritme yang mendukung pengemasan bit opsional pada roda; meskipun tidak disebutkan secara khusus dalam makalah referensi, kode semu ini menghilangkan beberapa kombinasi yang jelas dari ganjil /genap x / y untuk mengurangi komputasi di mana komputasi tersebut tidak akan pernah lulus tes modulo (yaitu akan menghasilkan angka genap

limit←1000000000// batas pencarian sembarang

// set posisi "hit" roda untuk roda 2/3/5 yang diputar dua kali sesuai algoritma Atkin ← {1,7,11,13,17,19,23,29,31,37,41,43,47,49,53,59}

// Inisialisasi saringan dengan roda yang cukup untuk memasukkan batas:
untukn←60×w+xdimanaw∈{0,1,...,limit÷60},x∈s:
is_prime(n)←false

// Masukkan bilangan prima kandidat:
//   bilangan bulat yang memiliki jumlah ganjil
//   representasi dengan bentuk kuadrat tertentu.
// Algoritma langkah 3.1:
forn≤limit,n←4x²+y²wherex∈{1,2,...}andy∈{1,3,...}// all x's odd y's
ifnmod60∈{1,13,17,29,37,41,49,53}:
is_prime(n)←¬is_prime(n)// toggle state
// Algoritma langkah 3.2:
forn≤limit,n←3x²+y²wherex∈{1,3,...}andy∈{2,4,...}// only odd x's
ifnmod60∈{7,19,31,43}:// and even y's
is_prime(n)←¬is_prime(n)// toggle state
// Algoritma langkah 3.3:
forn≤limit,n←3x²-y²wherex∈{2,3,...}andy∈{x-1,x-3,...,1}//all even/odd
ifnmod60∈{11,23,47,59}:// odd/even combos
is_prime(n)←¬is_prime(n)// toggle state

// Hilangkan komposit dengan pengayakan, hanya untuk kejadian di roda:
untukn²≤limit,n←60×w+xdimanaw∈{0,1,...},x∈s,n≥7:
ifis_prime(n):
// n adalah bilangan prima, hilangkan kelipatan kuadratnya; ini sudah cukup 
// karena komposit bebas persegi tidak bisa masuk dalam daftar ini
forc≤limit,c←n²×(60×w+x)wherew∈{0,1,...},x∈s:
is_prime(c)←false

// satu sapuan untuk menghasilkan daftar bilangan prima berurutan hingga batas:
output2,3,5
for7≤n≤limit,n←60×w+xwherew∈{0,1,...},x∈s:
ifis_prime(n):outputn

Kode semu ini ditulis untuk kejelasan; meskipun beberapa perhitungan yang berlebihan telah dihilangkan dengan mengontrol kombinasi ganjil / genap x / y, itu masih menyia-nyiakan hampir setengah dari komputasi kuadratnya pada gelung takproduktif yang tidak lulus uji modulo sedemikian rupa sehingga tidak akan lebih cepat dari yang setara faktor roda (2/3/5) tapis Eratosthenes. Untuk meningkatkan efisiensinya, suatu metode harus dirancang untuk meminimalkan atau menghilangkan perhitungan takproduktif ini.

Lihat pula

Referensi

  1. 1 2 3 4 5 A. O. L. Atkin, D. J. Bernstein, Perdana saringan menggunakan biner bentuk kuadrat, Matematika. Comp. 73 (2004), 1023-1030.
Konten disalin dari Wikipedia Bahasa Indonesia (lisensi CC BY-SA) Lihat versi asli di Wikipedia

Rekomendasi Pilihan