diff --git a/articles/for-asvk/article/article_hbd.tex b/articles/for-asvk/article/article_hbd.tex index a5809cc..c16bc66 100644 --- a/articles/for-asvk/article/article_hbd.tex +++ b/articles/for-asvk/article/article_hbd.tex @@ -103,7 +103,88 @@ H_b(R)\subseteq H_b(P). Для каждого имени вычисляется 32-битный Jenkins one-at-a-time [\Ref{JENKINS}], после чего сохраняются только $b$ младших бит. Пусть $n$ различных имён независимо и равномерно отображаются в пространство из $N=2^b$ значений. Тогда математическое ожидание числа столкнувшихся пар равно +\[ +\mathbb{E}C=\binom{n}{2}\frac{1}{2^b} +=\frac{n(n-1)}{2^{b+1}}, +\] +а вероятность хотя бы одной коллизии имеет вид +\[ +\P(C>0)=1-\prod_{i=0}^{n-1}\left(1-\frac{i}{2^b}\right) +\approx 1-\exp\left(-\frac{n(n-1)}{2^{b+1}}\right). +\] +Эти выражения являются модельными: Jenkins OAAT не является случайным оракулом, поэтому окончательная оценка должна дополняться измерением коллизий на реальном корпусе символов. +Эвристическую верхнюю оценку ложного принятия при $k=|R\setminus P|$ отсутствующих символов можно записать как +\[ +\Pr\bigl(H_b(R)\subseteq H_b(P)\mid R\nsubseteq P\bigr) +\lesssim +\left(\frac{|H_b(P)|}{2^b}\right)^k. +\] +Увеличение $b$ снижает вероятность ошибки, но увеличивает кодируемые значения и длину строки. Поэтому выбор \texttt{bpp} представляет собой компромисс между компактностью метаданных и риском коллизий; при формировании \texttt{set:}-строки для \texttt{Requires} набора используется точность, определённая по числу символов соответствующего \texttt{Provides}, а не по обычно намного меньшему числу требований. + +\subsection{Кодирование Голомба--Райса} + +После сортировки уникальных значений +\[ +0\leq x_1