A **hash table**`T[0:m-1]` uses a **hash function** to map a universe of keys into slots of the hash table. It can be seen as a generalization of direct addressing (which has "hash function" $h(k) = k$).
%%ANKI
Basic
With respect to hashing, what does the "universe" of keys refer to?
Consider hash table $T$ with $m$ slots that stores $n$ entries. Then the **load factor** $\alpha$ for $T$ is defined to be $n / m$, i.e. the average number of entries that map to the same slot.
**Static hashing** refers to providing a single fixed hash function intended to work well on *any* data. Generally speaking, this should not be favored over random hashing.
Back: Providing a single hash function intended to work well on *any* data.
Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022).
Tags: hashing::static
<!--ID: 1720821498619-->
END%%
%%ANKI
Cloze
{Static} hashing provides a {single hash function} intended to work well on any data.
Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022).
Tags: hashing::static
<!--ID: 1720821498622-->
END%%
%%ANKI
Basic
What does it mean for static hashing to be independent?
Back: Where a key hashes to is independent of where other keys hash to.
Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022).
Tags: hashing::static
<!--ID: 1720821498628-->
END%%
%%ANKI
Basic
What about independent static hashing is a bit of a misnomer?
Back: N/A.
Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022).
Tags: hashing::static
<!--ID: 1720821498631-->
END%%
%%ANKI
Basic
What does it mean for static hashing to be uniform?
Back: Each key has an equal likelihood of hashing to any slot.
Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022).
Tags: hashing::static
<!--ID: 1720821498634-->
END%%
%%ANKI
Basic
What about uniform static hashing is a bit of a misnomer?
Back: Where keys hash to depend on the input keys' probability distribution.
Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022).
Tags: hashing::static
<!--ID: 1720821498637-->
END%%
%%ANKI
Basic
In static hashing, *why* is uniformity generally impossible?
Back: Because we use a fixed hash function for *all* data.
Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022).
Tags: hashing::static
<!--ID: 1720821498640-->
END%%
%%ANKI
Basic
Assuming $m$ slots, why is static hashing function $h(k) = \lfloor km \rfloor$ not generally "good"?
Back: The probability distribution from which keys were drawn may not be uniform.
Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022).
Tags: hashing::static
<!--ID: 1720821498644-->
END%%
%%ANKI
Basic
What property must an ideal static hashing function exhibit?
Back: It must derive hash values independently of any patterns that may exist in the keys.
Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022).
Tags: hashing::static
<!--ID: 1720821498648-->
END%%
%%ANKI
Basic
What randomization is available to static hashing?
Back: The distribution of input keys.
Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022).
Tags: hashing::static
<!--ID: 1720889385376-->
END%%
### Division Method
The **division method** for creating hash functions maps a key $k$ into one of $m$ slots by taking the remainder of $k$ divided by $m$. That is, $h(k) = k \bmod{m}$.
%%ANKI
Basic
The division method is used to produce what?
Back: A hash function.
Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022).
Tags: hashing::static
<!--ID: 1720889385404-->
END%%
%%ANKI
Basic
What hyperparameter(s) does the division method require?
Back: The number of slots in the hash table.
Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022).
Tags: hashing::static
<!--ID: 1720889385409-->
END%%
%%ANKI
Basic
Given $m$ slots, the division method produces what hash function?
Back: $h(k) = k \bmod{m}$
Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022).
Tags: hashing::static
<!--ID: 1720889385414-->
END%%
%%ANKI
Basic
Let $h$ be a division method hash function. What does $h(10)$ evaluate to?
Consider hash function $h(k) = k \bmod{m}$. What method was likely used to produce this?
Back: The division method.
Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022).
Tags: hashing::static
<!--ID: 1720891800562-->
END%%
%%ANKI
Basic
Is the division method an example of static or random hashing?
Back: Static.
Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022).
<!--ID: 1720891800592-->
END%%
### Multiplication Method
The **multiplication method** for creating hash functions first multiples a key $k$ by a constant $0 <A<1$andextractsthefractionalpartof$kA$.Thenitmultipliesthisvalueby$m$andtakestheflooroftheresult.Thatis,$h(k)= \lfloorm(kA \bmod{1}) \rfloor$.
%%ANKI
Basic
The multiplication method is used to produce what?
Back: A hash function.
Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022).
Tags: hashing::static
<!--ID: 1720891800597-->
END%%
%%ANKI
Basic
What hyperparameter(s) does the multiplication method require?
Back: Slot count $m$ and some constant $0 <A<1$.
Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022).
Tags: hashing::static
<!--ID: 1720891800602-->
END%%
%%ANKI
Basic
Given $m$ slots and constant $A$, the multiplication method produces what hash function?
Back: $h(k) = \lfloor m (kA \bmod{1}) \rfloor$
Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022).
Tags: hashing::static
<!--ID: 1720891800607-->
END%%
%%ANKI
Basic
What range does the constant $A$ found in the multiplication method take on?
Back: $0 <A<1$
Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022).
Tags: hashing::static
<!--ID: 1720891800612-->
END%%
%%ANKI
Basic
Consider hash function $h(k) = \lfloor m (kA \bmod{1}) \rfloor$. What does $m$ likely represent?
Back: The number of slots in the hash table.
Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022).
Tags: hashing::static
<!--ID: 1720891800617-->
END%%
%%ANKI
Basic
Consider hash function $h(k) = \lfloor m (kA \bmod{1}) \rfloor$. What does $A$ likely represent?
Back: Some constant $0 <A<1$.
Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022).
Tags: hashing::static
<!--ID: 1720891800622-->
END%%
%%ANKI
Basic
Consider constant $A$ used in the multiplication method. *Why* shouldn't $A = 0$?
Back: Then the produced hash function is constant.
Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022).
Tags: hashing::static
<!--ID: 1720891800628-->
END%%
%%ANKI
Basic
Consider constant $A$ used in the multiplication method. *Why* shouldn't $A = 1$?
Back: Then the produced hash function is constant.
Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022).
Tags: hashing::static
<!--ID: 1720891800634-->
END%%
%%ANKI
Basic
Consider hash function $h(k) = \lfloor m (kA \bmod{1}) \rfloor$. What method was likely used to produce this?
Back: The multiplication method.
Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022).
Tags: hashing::static
<!--ID: 1720891800655-->
END%%
%%ANKI
Basic
Is the multiplication method an example of static or random hashing?
Back: Static.
Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022).
<!--ID: 1720891800661-->
END%%
%%ANKI
Basic
For $x \in \mathbb{R}^+$, what does $x \bmod{1}$ represent?
Back: The fractional part of $x$.
Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022).
<!--ID: 1720891800639-->
END%%
%%ANKI
Basic
For $x \in \mathbb{R}^+$, what expression does $x \bmod{1}$ evaluate to?
Back: $x - \lfloor x \rfloor$
Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022).
<!--ID: 1720891800644-->
END%%
%%ANKI
Basic
For $x \in \mathbb{Z}^+$, what expression does $x \bmod{1}$ evaluate to?
Back: $0$
Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022).
**Random hashing** refers to choosing a hash function randomly in a way that is independent of the keys being stored.
%%ANKI
Basic
What does random hashing refer to?
Back: Choosing a hash function randomly and independently of the keys being stored.
Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022).
Tags: hashing::random
<!--ID: 1721482558926-->
END%%
%%ANKI
Basic
What does random hashing avoid that static hashing doesn't?
Back: Randomization guarantees no single input always evokes worst-case behavior.
Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022).
Tags: hashing::random
<!--ID: 1721482558932-->
END%%
### Universal Hashing
Let $\mathscr{H}$ be a finite family of hash functions that map a given universe $U$ of keys into range $\{0, 1, \ldots, m - 1\}$. Such a family is said to be **universal** if $$\forall x, y \in U, x \neq y \Rightarrow |\{h \in \mathscr{H} \mid h(x) = h(y)\}| \leq \frac{|\mathscr{H}|}{m}.$$
Consider universal family $\mathscr{H}$ and universe $U$. What number does the following evaluate to? $$|\{h \in \mathscr{H} \mid h(x) = h(y)\}| \text{ for distinct } x, y \in U$$
Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022).
Tags: hashing::random hashing::universal
<!--ID: 1721482559021-->
END%%
%%ANKI
Basic
Consider universe $U$ and $\mathscr{H} = \{h\}$ where $h(x) = 0$. *When* is $\mathscr{H}$ universal?
Back: When there exists only one slot in the relevant hash table.
Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022).
Tags: hashing::random hashing::universal
<!--ID: 1721482559031-->
END%%
%%ANKI
Basic
Consider universe $U$ and $\mathscr{H} = \{h\}$ where $h(x) = 0$. *When* is $\mathscr{H}$ not universal?
Back: When there exists more than one slot in the relevant hash table.
Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022).
Tags: hashing::random hashing::universal
<!--ID: 1721482559043-->
END%%
%%ANKI
Basic
Let $\mathscr{H} = \{h \mid U \rightarrow \{0, 1, \ldots, m - 1\}\}$ be universal. What number decreases as $m$ increases?
Back: The number of permitted conflicts for each $h \in \mathscr{H}$.
Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022).
Tags: hashing::random hashing::universal
<!--ID: 1721482559053-->
END%%
%%ANKI
Basic
Let $\mathscr{H} = \{h \mid U \rightarrow \{0, 1, \ldots, m - 1\}\}$ be universal. What number increases as $|\mathscr{H}|$ increases?
Back: The number of permitted conflicts for each $h \in \mathscr{H}$.
Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022).
Tags: hashing::random hashing::universal
<!--ID: 1721482559059-->
END%%
%%ANKI
Basic
Is $\varnothing$ a universal family?
Back: Yes.
Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022).
Tags: hashing::random hashing::universal
<!--ID: 1721482559064-->
END%%
%%ANKI
Basic
How might we redefine "universal" to prevent $\varnothing \subseteq \{h \mid h \colon U \rightarrow \{0, 1, \ldots, m - 1\}$ being considered universal?
Back: $$\forall x, y \in U, x \neq y \Rightarrow \frac{|\varnothing|}{|\varnothing|} \leq \frac{1}{m}$$
Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022).
* Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022).
* “Universal Hashing,” in _Wikipedia_, April 18, 2024, [https://en.wikipedia.org/w/index.php?title=Universal_hashing](https://en.wikipedia.org/w/index.php?title=Universal_hashing&oldid=1219538176).