Итак, цепочка из $\texttt{FFF}$ или же $\texttt{333}$ будет шанс 1 на $16^3 (4096)$
На самом деле, вероятность трех повторных покусываний (будь то $\texttt{FFF}$ или же $\texttt{333}$ или же $\texttt{000}$) будет 1 в $16^2 (256)$ - это происходит потому, что есть $16^3$ равновероятные значения этих 3 кусочков, и 16 из этих шаблонов являются повторами, поэтому вероятность повторения равна ${16\более 16^3} = {1\более 16^2}$. Если вы укажете, что они должны быть $\texttt{FFF}$ (и другие $\texttt{333}$ не будет считаться), тогда вы получите $16^3$; однако это не то, что вы делаете.
Например, в наборе из 100 тыс. хэшей у меня уже есть более 1 тыс. цепочек из 4 и более символов.
Это примерно так - в 100 000 хэшей есть примерно 6 000 000 мест, где может произойти строка из 4 повторяющихся кусочков; в любом месте есть вероятность $16^{-3} = {1 \более 4096}$ быть повторением - упрощенное вычисление дает около 1400 ожидаемых строк повторов.
Я говорю «упрощенный», потому что это прямолинейное вычисление игнорирует перекрывающиеся строки — например, за серию будет считаться строка из 5 повторяющихся кусочков, а не 2 серии из 4. Кроме того, вероятности, связанные с перекрывающимися строками, не являются независимыми. Хотя эти эффекты несколько уменьшают ожидаемую общую сумму, я считаю, что упрощенные вычисления достаточно хороши для приблизительной оценки.