OSDN Git Service

:ok_hand: Apply suggestions from code review
authorouuan <y___o___u@126.com>
Thu, 12 Sep 2019 09:16:17 +0000 (17:16 +0800)
committerGitHub <noreply@github.com>
Thu, 12 Sep 2019 09:16:17 +0000 (17:16 +0800)
Co-Authored-By: Margatroid <i@margatroid.xyz>
docs/string/hash.md

index 51332f9..0cd1713 100644 (file)
@@ -27,7 +27,7 @@ Hash 的核心思想在于,将输入映射到一个值域较小、可以方便
 
 这里面的 $b$ 和 $M$ 需要选取得足够合适才行,以使得 Hash 函数的值分布尽量均匀。
 
-如果 $b$ 和 $M$ 互质,在输入随机的情况下,这个 Hash 函数在 $[0,M)$ 上每个值概率相等,此时单次比较的错误率为 $\frac1M$ 。所以,哈希的模数一般会选用大质数。
+如果 $b$ 和 $M$ 互质,在输入随机的情况下,这个 Hash 函数在 $[0,M)$ 上每个值概率相等,此时单次比较的错误率为 $\frac 1 M$ 。所以,哈希的模数一般会选用大质数。
 
 ## Hash 的实现
 
@@ -58,7 +58,7 @@ void cmp(const string& s, const string& t) {
 
 ### 错误率
 
-若进行 $n$ 次比较,每次错误率 $\frac1{M}$ ,那么总错误率是 $1-(1-1/M)^n$ 。在随机数据下,若 $M=10^9 + 7$ , $n=10^6$ ,错误率约为 $\frac 1{1000}$ ,并不是能够完全忽略不计的。
+若进行 $n$ 次比较,每次错误率 $\frac 1 M$ ,那么总错误率是 $1-\left(1-\frac 1 M\right)^n$ 。在随机数据下,若 $M=10^9 + 7$ , $n=10^6$ ,错误率约为 $\frac 1{1000}$ ,并不是能够完全忽略不计的。
 
 所以,进行字符串哈希时,经常会对两个大质数分别取模,这样的话哈希函数的值域就能扩大到两者之积,错误率就非常小了。