흥미로운 질문은 몇 가지 구체적인 사례를 살펴 보겠습니다.
있으라 키 에 비트 합계와 비트 삽입 소자. 먼저 상태가 발생할 확률 인 함수 를 찾으려고합니다 .knonntotalmP(k,non,ntotal,m)
경우 다음 이어야 , 즉 그것은 불가능이다.km<nonP(k,non,ntotal,m)0
경우 , 우리는 확률을 찾고 다른 사람들은 어디로 가야 해시가 같은 양동이에 떨어지는, 처음은 표시 할 수 있습니다. 따라서 해시가 특정 버킷에 포함될 확률을 찾고 싶습니다 .non=1kmkm−1
P(k,1,ntotal,m)=(1/ntotal)(km−1)
그것은 정말 간단한 경우입니다. 경우 우리는 확률을 찾으려면 해시에 땅 별개의 버킷 적어도 각에 빠진다. 버킷 에는 쌍이 있으며 특정 에 해시가 도달 할 확률 은 이므로 해시가 떨어질 확률 에 버킷입니다 :non=2km21ntotal(ntotal−1)2(2/ntotal)km2
ntotal(ntotal−1)(2/ntotal)km
우리는 이미 버킷에 떨어질 확률을 알고 있으므로 정확히 빠질 확률을 뺍니다 .212
P(k,2,ntotal,m)=ntotal(ntotal−1)(2/ntotal)km−(1/ntotal)(km−1)
지금 일반화 할 수 있다고 생각합니다.
P(k,non,ntotal,m)=(ntotalnon)(non/ntotal)km−∑i<noni=1P(k,i,ntotal,m)
이 수식을 계산하기에 더 잘 만드는 방법을 정확히 모르겠습니다. 순진하게 구현하면 선형 시간을 달성하기 위해 메모를 통해 사소한 것이지만 지수 시간 실행 시간이 발생합니다. 그런 다음 가장 가능성이 높은 을 찾는 경우입니다 . 내 본능에 따르면 단일 피크가 있으므로 매우 빨리 찾을 수 있지만 순진하게도 에서 가장 가능성이 높은 m을 찾을 수 있습니다 .mO(n2)