P veya NP-tamamlanmış olduğu bilinen bir aralıkta bir asal olup olmadığını belirlemek mi?


13

Stackoverflow bu yazıdan gördüm ki, bu aralıkta bir başbakan olup olmadığını görmek için bir sayı aralığı elemek için nispeten hızlı algoritmalar vardır. Bununla birlikte, bu, genel karar sorununun şu anlama geldiği anlamına mı geliyor: (Bir aralıkta asal var mı?) P'de. yinelenen veya gereksiz).

Bir yandan, aralık yeterince büyükse (örneğin ) o zaman Bertrand's Postulate gibi bir şey geçerlidir ve bu aralıkta kesinlikle bir ana vardır. Ancak, aynı zamanda, örneğin, iki asal arasında (isteğe bağlı olarak büyük boşluklar biliyoruz [ N ! , N ! + K ] . [N,2N][N!,N!+N]

Karar problemi PI'da olsa bile, karşılık gelen arama sorununun nasıl izlenebilir olduğunu görmüyoruz, çünkü o zaman ikili arama yaparken primerlerin bilinen dağılımı ile aynı özellikleri çizemeyebiliriz.

Yanıtlar:


19

Yani probleminiz şöyle:

Girdi: tamsayılar Soru: [ , u ] 'da bir asal var mı?,u
[,u]

Bildiğim kadarıyla, bu sorunun P'de olup olmadığı bilinmemektedir.

İşte bildiklerim:

  • Öncelik testi (tek bir sayı verilir, asal olup olmadığını test edin) P'dir, bu nedenle aralık yeterince küçükse, aralıktaki her sayıyı asal olup olmadığını görmek için kapsamlı bir şekilde test edebilirsiniz - ancak bu bir genel algoritma.

  • Eğer Cramer varsayım doğruysa, o zaman sorun P. Cramer'in varsayım ise yakın ardışık asal arasındaki boşluk söylüyor olan Ç ( ( log n ) 2 ) Aşağıdaki algoritma P olacaktır, böylece: iterate sayılar aracılığıyla , + 1 , + 2 , + 3 , , her birinin asal olup olmadığını test etme; asal olanı bulursanız, hemen evet cevabı ile durun; Eğer sana vurursan , cevap vermeden dur. Cramer'in varsayımı bize çoğu O'dan sonra duracağınızı söylernO((logn)2),+1,+2,+3,u öncelik testleri, böylece algoritma polinom zamanında çalışacaktır.O((log)2)

    Ne yazık ki, asal boşluklardaki bilinen sonuçlar , sorunun P'de olduğunu koşulsuz olarak kanıtlayacak kadar güçlü görünmüyor.

  • İşte başka bir basit algoritma: tekrar tekrar [ , u ] ' dan rastgele bir tamsayısı seçin ve asal olup olmadığını test edin. Bir asal bulursanız veya [ , u ] içindeki tüm tam sayıları denediyseniz ve hiçbiri asal değilse durdurun . Sezgisel olarak, bunun pratikte etkili olmasını beklemeliyiz. Asal sayı teoremi bize u yakınında rastgele sayı seçerseniz , asal olma olasılığının yaklaşık 1 / log n olacağını söyler . Dolayısıyla, sezgisel olarak, yaklaşık O ( log u )r[,u][,u]u1/lognO(logu)yinelemeler, genellikle bir asal bulur ve varsa durur. Kupon koleksiyoncu sorununa, eğer nedeniyle Öte yandan, aralıktaki hiçbir asal yoktur , sen sonra yaklaşık durdururuz O ( ( u - l ) log ( u - lt ) ) yineleme. Yani, asal sayılar arasındaki en uzun boşluk büyüklüğünde iyi bir üst sınırımız olsaydı, bu sorunun BPP'de olduğu anlamına gelir. Böyle bir üst sınır olmadan bile, rastgele problem örneklerinin kolay olduğu anlaşılmaktadır.[,u]O((ul)log(ul))

  • Muhtemelen, pratikte çalışma süresini iyileştirmek için eleme yöntemleri uygulanabilir (örneğin, küçük bir asal ile bölünebilen sayılar üzerinde herhangi bir öncelik testi yapmaktan kaçınmak). Bunun herhangi bir asimtotik iyileşmeye yol açıp açmayacağını gösteremiyorum.

  • Bu teknikler nedeniyle, problem muhtemelen pratikte kolaydır.

  • Yukarıdaki açıklamalar nedeniyle, sorunun NP-tamamlanmış olduğundan şahsen şüpheliyim.


O(u)

O(poly(logu))

O(poly(logu))O(poly(u))

loguu

Gerek yok, karışıklığımı sildin. Çok teşekkürler!
Quelklef
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.