Cvičení 24. 11. 2021: Hešování za ideálních podmínek

\( \def\H{\mathcal{H}} \def\U{\mathcal{U}} \def\B{\mathcal{B}} \)

Řešení matrix_transpose a poznámky k experimentu

Řešení ab_experiment

Povím na cvičení.

Nový úkol: cuckoo_hash

Setting dnešního cvičení

Notace:

Př. 1: Kvadratická tabulka

Mějme \(m = n^2\). Spočítejte, s jakou pravděpodobností nastane v takovém případě kolize, když použijeme úplně náhodnou hešovací funkci. Respektive, spočítejte nějaký rozumný horní odhad.
  1. Nejdřív spočtěte pravděpodobnost, že dva konkrétní prvky při hešování zkolidují.
  2. Pak už stačí jen správně použít union-bound, tedy nerovnost \(\Pr[A\vee B] \le \Pr[A]+\Pr[B]\).

Př. 2: Narozeninový paradox

Spočtěte, kolik je třeba do tabulky velikosti \(m\) zahešovat prvků, abychom dostali kolizi s pravděpodobností alespoň 1/2. Samozřejmě, chceme najít co nejmenší počet, který nám tuto pravděpodobnost dá.
  1. Přesně spočtěte pravděpodobnost, že při vložení \(k\) prvků nedojde ke kolizi (\(p_k\). Může se hodit indukce.
  2. Vytvořte vhodný odhad \(p_k\) pomocí nerovnosti \(1+x \le e^x\), která platí pro všechna reálná \(x\)
  3. Spokojeně skliďte plody své práce zvolením vhodného \(k\).