Ciekawe pytanie, spójrzmy na niektóre konkretne przypadki.
Niech będzie klucze, N O N bitów na, n t o t a l bitów całkowitego i m elementów wstawianych. Najpierw spróbujemy znaleźć funkcję P ( k , n o n , n t o t a l , m ), która jest prawdopodobieństwem wystąpienia stanu.kno nnt o t a lmP.( k , no n, nt o t a l, m )
Jeśli , to P ( k , n o n , n t o t a l , m ) musi wynosić 0 , tzn. Jest to niemożliwe.k m < no nP.( k , no n, nt o t a l, m )0
Jeśli , a następnie szukamy prawdopodobieństwo, że k m hashe spaść w tym samym wiadrze, pierwszy może oznaczać gdzie reszta powinna pójść. Chcemy więc ustalić prawdopodobieństwo, że hasze k m - 1 wpadną do określonego segmentu.no n= 1k mk m - 1
P.( k , 1 , nt o t a l,m)=(1/ntotal)(km−1)
To naprawdę proste przypadki. Jeśli wówczas znaleźć prawdopodobieństwo k m skróty ziemi w 2 różnych wiadra i co najmniej jeden mieści się w każdej z nich. Istnieje n t o t l ( n t o t L - 1 ) par wiadra i prawdopodobieństwo, że skróty ziemi w indywidualnych 2 jest ( 2 / n t o t l ) k mnon=2km21ntotal(ntotal−1)2(2/ntotal)kmwięc prawdopodobieństwo, że skróty mieszczą się w maksymalnie segmentach, wynosi:2
ntotal(ntotal−1)(2/ntotal)km
Wiemy już prawdopodobieństwo, że wpadną do wiadra, więc odejmijmy to, aby dać prawdopodobieństwo, że wpadną dokładnie do 2 .12
P(k,2,ntotal,m)=ntotal(ntotal−1)(2/ntotal)km−(1/ntotal)(km−1)
Myślę, że możemy to teraz uogólnić.
P.( k , no n, nt o t a l, m ) = ( nt o t a lno n) (no n/ nt o t a l)k m- ∑i < no ni = 1P.( k , i , nt o t a l, m )
Nie jestem do końca pewien, jak uczynić tę formułę bardziej podatną na obliczenia. Zaimplementowane naiwnie, spowodowałoby to czas wykonania wykładniczego czasu, choć jest trywialne, poprzez zapamiętywanie, aby osiągnąć czas liniowy. To tylko przypadek znalezienia najbardziej prawdopodobnego . Mój instynkt mówi, że będzie jeden pik, więc może być możliwe znalezienie go bardzo szybko, ale naiwnie zdecydowanie można znaleźć m w O ( n 2 ) .mO ( n2))