Bölünebilirlik için en etkili algoritma nedir?


12

Divisibity Karar Problemi için günümüzde bilinen (zaman karmaşıklığı içinde) en verimli algoritma nedir: İki tamsayı verilen söylemek ve , yaptığı bölme ? İstediğim şeyin (Kalan) Kalan Hesaplama için bir algoritma olmadığı açıktır. Ben sadece bölünmesinin olup olmadığını bilmek istiyorum . Daha açık olmak gerekirse, sorum zaman karmaşıklığı den daha iyi olan Bölünebilirlik için var olan veya olmayan bazı algoritma olup olmadığıdır , burada bit sayısıdır . Ayrıca, \ Omega (m \ log m \ log \ log m) bu sorunun alt sınırı mıdır?birbbirbbirbÖ(mgünlükmgünlükgünlükm)mmaksimum{bir,b}Ω(mgünlükmgünlükgünlükm)

Teşekkürler ve saygılar, ve bu kadar naif bir soru mu?


AFAIK, bilinen önemsiz alt sınırlar yoktur. Ben inanıyorum çarpma ve bölme Newton yöntemi ile (muhtemelen bir günlük günlük faktörü? Kadar olabilir) temelde aynı karmaşıklığı sahip oldukları bilinmektedir ve hiçbir ardından çarpma üzerine bağlı düşük değerler doğrusal olmayan var biliniyor beri iyi bir alt formun bağlı düşünüyorum önemli bir sonuç olacağını söylüyorsunuz.
Steven Stadnicki

(Aslında, şimdi baktığımda günlük log faktörünün ortadan kalktığını düşünüyorum, çünkü sabit olmayan sayıda çarpma yaparken, hepsi aynı uzunlukta değil, bu yüzden süper lineer faktörler aynı şekilde emilebilir, örneğin, Σk=1lgnn2k , sabit olmayan sayıda 'doğrusal' faktör olmasına rağmen n'de hala doğrusaldır n.)
Steven Stadnicki

Yanıtlar:


4

Yorumlarımı bir cevaba dönüştürmek: bölünebilirlik (önemsiz olarak) bölünmeye indirgenebildiğinden ve bölünme (önemsizce) Newton'un yöntemi gibi yaklaşımlarla çarpmaya indirgenebildiğinden, probleminiz tamsayı çarpımı ile aynı zaman karmaşıklığına sahip olmalıdır. AFAIK, önemsiz doğrusal olandan daha iyi çarpma için daha düşük sınırlar yoktur, bu yüzden probleminiz için de geçerli olmalıdır - ve özellikle, çarpmanın (esasen) olduğu bilinmektedir. algoritmalar, alt sınırı için umutlarınız neredeyse kesinlikle boşuna.Ö(ngünlükngünlük*n)ngünlükngünlükgünlükn

Bölünmenin çoğalmanın karmaşıklığı açısından tam olarak azalmasının nedeni - anladığım kadarıyla - Newton yönteminin farklı artan boyutlarda çarpma dizisi yapmasıdır; Bu, karmaşıklık çarpma için bir algoritma varsa, bu çarpma algoritmasını ara adım olarak kullanan bir bölme algoritmasının karmaşıklığının - ve tartışılan tüm karmaşıklık sınıfları için bu sadece .Θ(f(n))Θ(k=0lgnf(n2k))Θ(f(n))


2
Nitpick: Çarpma için şu anda bilinen en iyi algoritmalardan daha iyi bir algoritma olmadığını varsaysak bile, bu tür bir akıl yürütmeden nasıl daha düşük bir sınır elde ettiğinizi görmüyorum. Düşüşleriniz bölünebilirliğin çarpma işleminden daha zor olmadığını göstermektedir. Ancak bölünebilirliğin bölme işleminden daha kolay ve çarpma işleminden daha kolay olma olasılığı vardır, çünkü bölünebilirlik bir sayı yerine yalnızca evet / hayır yanıtı gerektirir. (En azından, bahsettiğiniz azalma bunu göz ardı etmiyor gibi görünüyor.)
DW

2
@DW Kabul etti ve bu mükemmel bir nokta; ama ben daha düşük bir sınır elde etmeye çalışmıyordum. Aksine, bölünebilirlik üzerindeki herhangi bir alt sınır, çarpmadaki karşılık gelen alt sınırı ima ettiği ve önemsiz doğrusal sınırın ötesinde böyle bir sınırın bilinmediği için bölünebilirlik üzerinde doğrusal olandan daha iyi bir alt sınır elde edilmesi ( OP istedi) olası değildir.
Steven Stadnicki

@DW Bölünebilirlik üzerinde doğrusal bir üst sınır öğrenmek için tamamen şok olmazdım ve dediğiniz gibi, çarpmadaki üst sınırlar hakkında özel bir şey ima etmeyecektir, ancak bu yönde AFAIK'te belirli bir sonuç yoktur.
Steven Stadnicki

-2

Sanırım 3,7 vb. İle biten bazı numaralar için Vedik türü kesmek var. Veya taban 2 ^ n bölücüler ...

Ama genel olarak konuşursak, en hızlı bölme algoritması norm gibi görünüyor.

Bakmadan bildiğim en iyi şey Knuth'un Seminumerical yöntemlerinden Algoritma D ... Asla doğruluğunu kontrol etmedim. Daha fazla veya daha az O (mn-n ^ 2) içinde çalışır ve burada m ve n, temettü ve bölücüdür ... çarpma karmaşıklığını çarpanlarına ayırmadan ...

Ancak daha düşük bir sınır, sorunuz yalnızca karar sorunu ile ilgili olduğundan aşırı derecede düşük olabilir.

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.