Introduction to Algorithms, Third Edition



Download 4,84 Mb.
Pdf ko'rish
bet173/618
Sana07.04.2022
Hajmi4,84 Mb.
#534272
1   ...   169   170   171   172   173   174   175   176   ...   618
Bog'liq
Introduction-to-algorithms-3rd-edition

11.3.2
The multiplication method
The
multiplication method
for creating hash functions operates in two steps. First,
we multiply the key
k
by a constant
A
in the range
0 < A < 1
and extract the


264
Chapter 11
Hash Tables
×
s
D
A
2
w
w
bits
k
r
0
r
1
h.k/
extract
p
bits
Figure 11.4
The multiplication method of hashing. The
w
-bit representation of the key
k
is multi-
plied by the
w
-bit value
s
D
A
2
w
. The
p
highest-order bits of the lower
w
-bit half of the product
form the desired hash value
h.k/
.
fractional part of
kA
. Then, we multiply this value by
m
and take the floor of the
result. In short, the hash function is
h.k/
D b
m .kA
mod
1/
c
;
where “
kA
mod
1
” means the fractional part of
kA
, that is,
kA
b
kA
c
.
An advantage of the multiplication method is that the value of
m
is not critical.
We typically choose it to be a power of
2
(
m
D
2
p
for some integer
p
), since we
can then easily implement the function on most computers as follows. Suppose
that the word size of the machine is
w
bits and that
k
fits into a single word. We
restrict
A
to be a fraction of the form
s=2
w
, where
s
is an integer in the range
0 < s < 2
w
. Referring to Figure 11.4, we first multiply
k
by the
w
-bit integer
s
D
A
2
w
. The result is a
2w
-bit value
r
1
2
w
C
r
0
, where
r
1
is the high-order word
of the product and
r
0
is the low-order word of the product. The desired
p
-bit hash
value consists of the
p
most significant bits of
r
0
.
Although this method works with any value of the constant
A
, it works better
with some values than with others. The optimal choice depends on the character-
istics of the data being hashed. Knuth [211] suggests that
A
.
p
5
1/=2
D
0:6180339887 : : :
(11.2)
is likely to work reasonably well.
As an example, suppose we have
k
D
123456
,
p
D
14
,
m
D
2
14
D
16384
,
and
w
D
32
. Adapting Knuth’s suggestion, we choose
A
to be the fraction of the
form
s=2
32
that is closest to
.
p
5
1/=2
, so that
A
D
2654435769=2
32
. Then
k
s
D
327706022297664
D
.76300
2
32
/
C
17612864
, and so
r
1
D
76300
and
r
0
D
17612864
. The
14
most significant bits of
r
0
yield the value
h.k/
D
67
.


11.3
Hash functions
265
?
11.3.3
Universal hashing
If a malicious adversary chooses the keys to be hashed by some fixed hash function,
then the adversary can choose
n
keys that all hash to the same slot, yielding an av-
erage retrieval time of
‚.n/
. Any fixed hash function is vulnerable to such terrible
worst-case behavior; the only effective way to improve the situation is to choose
the hash function
randomly
in a way that is
independent
of the keys that are actually
going to be stored. This approach, called

Download 4,84 Mb.

Do'stlaringiz bilan baham:
1   ...   169   170   171   172   173   174   175   176   ...   618




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish