Computer >> Máy Tính >  >> Lập trình >> Lập trình

Băm theo phép nhân trong cấu trúc dữ liệu


Ở đây chúng ta sẽ thảo luận về phép băm với phương pháp nhân. Đối với điều này, chúng tôi sử dụng hàm băm -

ℎ(𝑥) = ⌊𝑚𝑥𝐴⌋ 𝑚𝑜𝑑 𝑚

Ở đây A là một hằng số có giá trị thực. Ưu điểm của phương pháp này là giá trị của m không quá tới hạn. Chúng ta cũng có thể coi m là lũy thừa của 2. Mặc dù bất kỳ giá trị nào của A đều cho hàm băm, nhưng một số giá trị của A tốt hơn những giá trị khác.

Theo Knuth, chúng ta có thể sử dụng tỷ lệ vàng cho A, Vì vậy, A sẽ là

$$ A =\ frac {\ sqrt5-1} {2} =0,61803398 $$

Tất nhiên, bất kể giá trị nào được chọn cho A. Nguyên tắc chuồng chim bồ câu ngụ ý rằng nếu u ≥ nm, thì sẽ có một giá trị băm i và một số S ⊆ U có kích thước n, sao cho h (x) =i với mọi x ở S.

Vì vậy, chúng ta có thể nói rằng trường hợp xấu nhất là băm bằng phép nhân cũng tệ như băm bằng phép chia.