Câu hỏi thú vị, hãy xem xét một số trường hợp cụ thể.
Để có khóa, n o n bit trên, n t o t a l bit trong tổng số và m phần tử được chèn. Trước tiên chúng ta sẽ cố gắng tìm một hàm P ( k , n o n , n t o t a l , m ) là xác suất của trạng thái xảy ra.knonntotalmP(k,non,ntotal,m)
Nếu , thì P ( k , n o n , n t o t a l , m ) phải là 0 , tức là không thể áp dụng được.km<nonP(k,non,ntotal,m)0
Nếu , thì chúng ta đang tìm xác suất để k m băm rơi vào cùng một nhóm, cái đầu tiên có thể đánh dấu nơi những người khác nên đi. Vì vậy, chúng tôi muốn tìm xác suất để k m - 1 băm rơi vào một nhóm cụ thể.non=1kmkm−1
P(k,1,ntotal,m)=(1/ntotal)(km−1)
Đó là những trường hợp thực sự đơn giản hơn. Nếu thì chúng ta muốn tìm xác suất k m băm hạ cánh trong 2 thùng khác nhau và ít nhất 1 lần rơi trong mỗi thùng . Có n t o t một l ( n t o t một l - 1 ) cặp xô và xác suất mà băm đất trong bất kỳ cụ thể 2 là ( 2 / n t o t một l ) k mnon=2km21ntotal(ntotal−1)2(2/ntotal)kmvì vậy xác suất để các giá trị băm rơi vào tối đa nhóm là:2
ntotal(ntotal−1)(2/ntotal)km
Chúng ta đã biết xác suất rằng chúng sẽ rơi vào thùng, vì vậy hãy trừ đi để đưa ra xác suất rằng chúng sẽ rơi vào đúng 2 .12
P(k,2,ntotal,m)=ntotal(ntotal−1)(2/ntotal)km−(1/ntotal)(km−1)
Tôi nghĩ rằng chúng ta có thể khái quát điều này ngay bây giờ.
P(k,non,ntotal,m)=(ntotalnon)(non/ntotal)km−∑i<noni=1P(k,i,ntotal,m)
Tôi không chắc chắn làm thế nào để làm cho công thức này dễ dàng hơn để tính toán. Được thực hiện một cách chắc chắn, nó sẽ dẫn đến thời gian thực hiện theo cấp số nhân, mặc dù nó không quan trọng, thông qua việc ghi nhớ, để đạt được thời gian tuyến tính. Đó chỉ là một trường hợp tìm thấy nhiều khả năng . Bản năng của tôi nói rằng sẽ có một đỉnh duy nhất để có thể tìm thấy nó rất nhanh, nhưng ngây thơ, bạn chắc chắn có thể tìm thấy nhiều nhất có thể là m trong O ( n 2 ) .mO(n2)