Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision | |||
|
aa:lab:5 [2025/11/01 11:47] codrut_eduard.bicu |
aa:lab:5 [2025/11/01 11:48] (current) codrut_eduard.bicu |
||
|---|---|---|---|
| Line 11: | Line 11: | ||
| ==== Context ==== | ==== Context ==== | ||
| - | În hashing, fiecare element este atribuit aleatoriu unui dintre cele <math>k</math> sloturi. | + | În hashing, fiecare element este atribuit aleatoriu unui dintre cele ( k ) sloturi. |
| Problemele pe care le studiem astăzi au aplicații directe în analiza performanței tabelelor hash. | Problemele pe care le studiem astăzi au aplicații directe în analiza performanței tabelelor hash. | ||
| Line 18: | Line 18: | ||
| === Exemplul 1: Paradoxul zilelor de naștere === | === Exemplul 1: Paradoxul zilelor de naștere === | ||
| - | Scenariu: avem <math>n</math> persoane și <math>k = 365</math> zile posibile. | + | Scenariu: avem ( n ) persoane și ( k = 365 ) zile posibile. |
| Dorim să aflăm probabilitatea ca cel puțin două persoane să aibă aceeași zi de naștere. | Dorim să aflăm probabilitatea ca cel puțin două persoane să aibă aceeași zi de naștere. | ||
| Formula teoretică este: | Formula teoretică este: | ||
| - | <math block> | + | $$ |
| P(\text{coliziune}) = 1 - \frac{k!}{(k-n)! \, k^n} | P(\text{coliziune}) = 1 - \frac{k!}{(k-n)! \, k^n} | ||
| - | </math block> | + | $$ |
| Codul de mai jos simulează fenomenul: | Codul de mai jos simulează fenomenul: | ||
| Line 47: | Line 47: | ||
| **Întrebări:** | **Întrebări:** | ||
| - | 1. Pentru ce valoare a lui <math>n</math> probabilitatea depășește 0.5? | + | 1. Pentru ce valoare a lui ( n ) probabilitatea depășește 0.5? |
| 2. Cum se aseamănă acest fenomen cu coliziunile dintr-o tabelă hash? | 2. Cum se aseamănă acest fenomen cu coliziunile dintr-o tabelă hash? | ||
| Line 54: | Line 54: | ||
| === Exemplul 2: Problema colecționarului de cupoane === | === Exemplul 2: Problema colecționarului de cupoane === | ||
| - | Scenariu: avem <math>n</math> cupoane distincte. | + | Scenariu: avem ( n ) cupoane distincte. |
| La fiecare pas tragem unul aleator (uniform). | La fiecare pas tragem unul aleator (uniform). | ||
| Dorim să aflăm câte extrageri sunt necesare în medie până le avem pe toate. | Dorim să aflăm câte extrageri sunt necesare în medie până le avem pe toate. | ||
| Rezultatul teoretic: | Rezultatul teoretic: | ||
| - | <math block> | + | $$ |
| E[T] = n H_n = n(1 + \tfrac{1}{2} + \tfrac{1}{3} + \dots + \tfrac{1}{n}) | E[T] = n H_n = n(1 + \tfrac{1}{2} + \tfrac{1}{3} + \dots + \tfrac{1}{n}) | ||
| - | </math block> | + | $$ |
| Simulare: | Simulare: | ||
| Line 86: | Line 86: | ||
| **Întrebări:** | **Întrebări:** | ||
| - | 1. Cum crește numărul așteptat de extrageri odată cu <math>n</math>? | + | 1. Cum crește numărul așteptat de extrageri odată cu ( n )? |
| 2. Ce analogie există între această problemă și procesul de „umplere” a tuturor sloturilor într-o tabelă hash? | 2. Ce analogie există între această problemă și procesul de „umplere” a tuturor sloturilor într-o tabelă hash? | ||