Memutuskan apakah suatu interval berisi bilangan prima


14

Apa kerumitan dalam menentukan apakah suatu interval bilangan asli mengandung bilangan prima? Varian Saringan Eratosthenes memberikan algoritma , di mana adalah panjang interval dan menyembunyikan menyembunyikan faktor polar-logaritmik di titik awal interval; dapatkah kita berbuat lebih baik (dalam hal sendiri)?O~(L)LL


1
Nitpick: Saringan Eratosthenes tidak memberi Anda hanya faktor polar-logaritmik pada titik awal, bahkan untuk interval panjang 1. Memang mungkin untuk memeriksa bahwa suatu bilangan prima adalah waktu yang polylogaritmik dalam bilangan (= polinomial dalam ukuran representasi) tetapi ini membutuhkan algoritma yang jauh lebih canggih daripada Saringan Eratosthenes.
Vanessa

1
@Quark Benar, seharusnya ditentukan "pseudoprime relatif terhadap basis faktor yang diberikan". Meskipun saat titik awal interval menjadi besar, biaya pengujian primality yang diharapkan menjadi nol ...
Elliot Gorokhovsky

Jawaban:


27

Penafian : Saya bukan ahli dalam teori bilangan.

Jawaban singkat : Jika Anda bersedia untuk menganggap "dugaan bilangan-teoretis yang masuk akal", maka kita dapat mengetahui apakah ada prima dalam interval dalam waktu p o l y l o g ( n ) . Jika Anda tidak bersedia untuk membuat asumsi seperti itu, maka ada algoritma yang indah karena Odlyzko yang mencapai n 1 / 2 + o ( 1 ) , dan saya percaya bahwa ini adalah yang terbaik dikenal.[n,n+Δ]polylog(n)n1/2+o(1)

Tautan yang sangat membantu dengan banyak informasi hebat tentang masalah yang berkaitan erat : proyek PolyMath pada algoritma deterministik untuk menemukan bilangan prima .

Jawaban panjang :

Ini adalah masalah yang sulit, bidang penelitian aktif, dan tampaknya terkait erat dengan pertanyaan sulit untuk membatasi kesenjangan antara bilangan prima. Masalah Anda secara moral sangat mirip dengan masalah menemukan bilangan prima antara dan 2 n secara deterministik, yang baru-baru ini menjadi subjek proyek PolyMath . (Jika Anda ingin benar-benar menyelami pertanyaan-pertanyaan ini, tautan itu adalah tempat yang tepat untuk memulai.) Secara khusus, algoritma terbaik kami untuk kedua masalah pada dasarnya sama.n2n

Dalam kedua kasus, algoritma terbaik sangat tergantung pada ukuran kesenjangan antara prime. Secara khusus, jika sedemikian rupa sehingga selalu ada bilangan prima antara n dan n + f ( n ) (dan f ( n ) dapat dihitung secara efisien), maka kita selalu dapat menemukan bilangan prima dalam waktu p o l y l o g ( n ) f ( n ) sebagai berikut. Untuk menentukan apakah ada bilangan prima antara n dan n +f(n)nn+f(n)f(n)polylog(n)f(n)n , periksa dulu apakah Δ f ( n ) . Jika demikian, hasilkan ya. Jika tidak, cukup lakukan iterasi melalui bilangan bulat antara n dan n + Δ dan uji masing-masing untuk primality dan jawab ya jika Anda menemukan bilangan prima dan tidak sebaliknya. (Ini dapat dilakukan secara deterministik, itulah sebabnya secara deterministik menemukan bilangan prima antara n dan 2 n sangat erat hubungannya dengan menentukan apakah ada bilangan prima dalam interval tertentu.)n+ΔΔf(n)nn+Δn2n

Jika bilangan prima berperilaku seperti yang kita pikir mereka lakukan, maka ini adalah akhir dari cerita (hingga faktor). Secara khusus, kami berharap dapat mengambil f ( n ) = O ( log 2 n ) . Ini dikenal sebagai dugaan Cramér setelah Harald Cramér, dan membuktikannya tampaknya sangat jauh dari jangkauan saat ini. Tapi, sejauh yang saya tahu, itu diyakini secara luas. (Seseorang tiba pada dugaan ini, misalnya, dari heuristik bahwa bilangan prima berperilaku seperti kumpulan bilangan bulat acak yang diperoleh dengan memasukkan setiap bilangan bulat n 3polylog(n)f(n)=O(log2n)n3independen secara acak dengan probabilitas .)1/logn

Ada banyak dugaan yang menyiratkan ikatan yang jauh lebih lemah , sepertidugaan Legendre. (Saya tidak mengetahui adanya dugaan yang diketahui menyiratkan suatu ikatan perantara, meskipun saya membayangkan bahwa mereka ada.) Dan, hipotesis Riemann diketahui menyiratkan ikatan yang samaf(n)O(f(n)O(n). Jadi, jika Anda menganggap dugaan ini, Anda pada dasarnya sesuai algoritma Odlyzko ini (sampai faktorn o ( 1 ) ) dengan algoritma yang lebih sederhana.f(n)O(nlogn)no(1)

Saya percaya bahwa ikatan tanpa syarat terbaik saat ini adalah karena Baker, Harman, dan Pintz . Jadi, jika Anda tidak mengasumsikan apa pun, maka algoritma Odlyzko mengalahkan algoritma yang jelas dengan faktor n 0,025 .O~(n0.525)n0.025


3
Jawaban ini luar biasa !! Dapatkah pendekatan ini diadaptasi untuk memutuskan apakah ada primes dalam interval di mana k adalah angka yang diberikan? Dan, apa kompleksitas dalam hal ini? kk
Michael Wehar

3
@MichaelWehar Pertanyaan yang bagus. Algoritma Odlyzko pasti dapat, karena algoritmanya benar-benar menghitung fungsi penghitungan utama . Untuk pendekatan menggunakan celah antara bilangan prima, saya bukan orang yang tepat untuk bertanya. Jelas, ini membutuhkan batas pada p n + k - p n , sebagai lawan hanya p n + 1 - p n , dan saya tidak tahu banyak tentang hal ini. Mungkin orang lain tahu? π(x):=\# primes below xpn+kpnpn+1pn
Noah Stephens-Davidowitz
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.