Bu cevap farklı bir hesaplama modelini ele almaktadır: birim maliyetli RAM modeli. Bu modelde, makine kelimeleri boyutuna sahiptir ve üzerlerindeki işlemler O ( 1 ) zaman alır. Ayrıca, her dizi öğesinin bir makine kelimesine sığdığını (ve dolayısıyla en fazla n O ( 1 ) büyüklükte olduğunu) basitliği varsayıyoruz .O(logn)O(1)nO(1)
Biz doğrusal bir zaman inşa edecek randomize tek taraflı hata ile algoritma olup olmadığını İki dizinin belirlenmesi daha zor sorun için (algoritma bu durumda olmasa bile aynı unsurları içerdiği iki diziler ilan etme) ve b 1 , … , b n aynı elementleri içerir. (Hiçbirinin sıralanmasını gerektirmiyoruz.) Algoritmamız en fazla 1 / n olasılıkla hata verecektir .a1,…,anb1,…,bn1/n
Buradaki fikir, dizilerin aynı öğeleri içermesi durumunda şu kimliğe sahip olmasıdır:
Bu polinomları tam olarak hesaplamak çok fazla zaman alacaktır. Bunun yerine, rastgele bir asal p ve rastgele bir x 0 seçer ve
n ∏ i = 1 ( x 0 - a i ) ≡ n ∏
∏i=1n(x−ai)=∏i=1n(x−bi).
px0
Diziler eşitse, test her zaman geçecektir, bu yüzden dizilerin farklı olduğu durumlara konsantre olalım. Özellikle, bazı
∏ n i = 1 ( x - a i ) - ∏ n i = 1 ( x - b i ) katsayısısıfır değildir. Bu yana
bir i , b ı büyüklük
n O ( 1 ) , bu katsayı büyüklüğe sahip
2 , n , n O (∏i=1n(x0−ai)≡∏i=1n(x0−bi)(modp).
∏ni=1(x−ai)−∏ni=1(x−bi)ai,binO(1) en az vardır, ve bu yüzden
, O(n)boyutu ana faktörler
Q(n). Biz en azından bir dizi seçerseniz o Bu araçlar
n 2 asal
pboyutunun en az
n 2 (söz hakkından), sonra rastgele bir asal için
pbu setin o olasılık en azından bir araya gelecek
1-1 / no
n Π i = 1 (x- a i )2nnO(n)=nO(n)O(n)Ω(n)n2pn2p1−1/n
Rastgele bir
x 0 modulo
p buna
1 - n / p ≥ 1 - 1 / n olasılığı ile tanık olacaktır(çünkü en fazla
n derecesinde bir polinomen fazla
n köke sahip olduğundan).
∏i=1n(x−ai)−∏i=1n(x−bi)≢0(modp).
x0p1−n/p≥1−1/nnn
Sonuç olarak, en az n 2 farklı primer seti ve rastgele x 0 modulo p arasında kabaca n 2 boyutunda rastgele bir seçersek , diziler aynı öğeleri içermediğinde testimiz başarısız olur olasılık 1 - O ( 1 / n ) . Testi çalışma süresi alır O ( n ) bu yana s makinesi sürekli bir söz sayıda içine sığar.pn2n2x0p1−O(1/n)O(n)p
Polinom zaman asallık test kullanılarak ve boyut asal yoğunluğu itibaren aşağı yukarı olduğu Q ( 1 / log n ) , bir rastgele birincil seçebilir p zamanında ( log n ) O ( 1 ) . Rastgele bir x 0 modulo p seçimi çeşitli şekillerde uygulanabilir ve bizim durumumuzda tamamen tekdüze bir rastgele x 0'a ihtiyacımız olmadığından daha kolay hale getirilir .n2Ω(1/logn)p(logn)O(1)x0px0
Sonuç olarak, zaman içinde bizim algoritma çalışır her zaman çıkışlar EVET, diziler HAYIR olasılık ile aynı elementleri ve çıkışları içeriyorsa 1 - O ( 1 / n ) diziler aynı unsurları ihtiva etmemesi. Herhangi bir sabit C için hata olasılığını 1 - O ( 1 / n C ) artırabiliriz .O(n)1−O(1/n)1−O(1/nC)C