COMP5270 Week 8 总结:Streaming and Sketching I(题解 + 知识点)

课程: COMP5270 - Randomness, Probability, and Algorithms 学期: S1 2026 来源: Week 8 Lecture Notes & Tutorial 8 Solutions


Part 1: Tutorial 8 详细题解

本部分按官方 Solutions PDF整理,每题含完整题目和逐步展开的详细解答。

Tutorial 难度总览

题目 所属部分 难度 复习建议
Problem 1 Warm-up 需读讲义;median-of-means 证明梳理 必做:理解为什么要"均值的中位数"
Problem 2 Warm-up 需读讲义;"mean-of-medians" 对比 概念题:理解顺序不能互换
Problem 3 Warm-up 需读讲义;BJKST 真随机 vs 强 universal 概念题:理解强 universal 省空间的作用
Problem 4 Warm-up 需读讲义;BJKST 用 的原因 概念题:理解两层哈希省空间
Problem 5 Problem Solving 重要,必须检查是否理解 Morris Counter 重点:逐步推导 careful variant 的期望、方差和空间
Problem 6 Problem Solving 短但需要关键想法;若没思路可直接看解答 推荐:Heavy Hitters 如何从 Misra-Gries 修改得到
Problem 7 Problem Solving 较复杂,但有价值;可以跳过但要看算法和解答 推荐:Bottom- 算法的 distinct elements 分析
Problem 8 Advanced 了解即可 扩展:流式 JL 降维计算均值向量大小

Problem 1: Morris Counter 的 median-of-means 证明梳理

题目: 过一遍 Morris Counter 的"median-of-means"证明,理解为什么需要这个技巧。

题解:

已知 Morris Counter 的随机变量 (最终返回 )满足(见 Lemma 40.1):

为什么直接用 Chebyshev 不够

由 Chebyshev 不等式,对估计量 :

当 时, ,这是一个无意义的界(失败概率 )。问题的本质是方差与均值的平方同阶( , ),Chebyshev 给不出小的相对误差界。

第一步:均值法降方差(means)

独立运行 个 Morris Counter,取均值 :

现在 Chebyshev 给出:

取 ,可以让失败概率降到 (常数,比如 ),获得以常数概率成立的 估计。

第二步:中位数法升概率(medians)

对失败概率为常数(比如 )的算法,独立运行 份,取这些估计的中位数。

若超过一半的运行都失败了,则中位数也会是坏估计,但这事件的概率以指数速度衰减(类似 Chernoff 界),最终失败概率降到 。

组合:总空间

每份均值组需 个 Counter,每个 Counter 用 bits(下文讲义分析),共 份:


Problem 2: "mean-of-medians" 为什么不行

题目: 如果换成"先取中位数、再取均值"(mean-of-medians),会发生什么?

题解:

"均值的中位数"(median-of-means)有效是因为:先用均值法让每个副本的失败概率降到常数(比如 ),然后对多个副本取中位数,中位数在多数副本正确时也正确,以指数速度降低总失败率。

如果改成"中位数的均值"(mean-of-medians):先对 个 Counter 取中位数,再对多个这样的副本取均值——但问题是,单个 Counter 的失败概率本来就很高(接近 ),取中位数并不能改变这一点(中位数和单个副本的失败概率相仿)。然后对这些"质量差"的估计取均值,均值的失败概率依然很高。

结论: 降概率的正确顺序是"先均值降方差,再中位数降尾概率",顺序不能互换。


Problem 3: BJKST 中用真随机 hash 会怎样

题目: 如果 BJKST 算法中用真随机 hash function 替代强 universal hash family,空间复杂度变成多少?

题解:

强 universal hash family 只需 bits 来描述(例如用线性哈希 ,只存 )。

而一个真随机 hash function 需要为每个输入独立记录输出,需要 bits 来存储完整的真值表。

BJKST 中的空间代价里,存 的项从 增长到 ,这远超我们的目标 ——完全失去了流式算法的意义。所以必须使用具有紧凑表示的哈希族(如强 universal family)。


Problem 4: BJKST 中为什么存 而不是

题目: 理解 BJKST 算法为什么使用哈希函数 ,如果把 换成直接存 ,会怎样?

题解:

BJKST 里维护一个集合 ,存的是 对。 把元素映射到一个小空间( ),存 只需 bits。

如果改为直接存 ,每个元素需要 bits, 最大约 ,总共需要

而存 只需 bits,指数级更省。 的作用就是在保留"指纹"功能(能区分不同的元素)的同时大幅缩短每个元素的表示长度,节省空间是其核心目的。


Problem 5: Morris Counter 的"careful variant"分析

题目: 分析 Morris Counter 的"careful variant"——将 乘以 的概率是 (而非原版的乘以 的概率 )。

(a) 计算算法末尾 的期望。 (b) 计算方差,并用 Chebyshev 得出结论。 (c) 如何设置 以得到带中位数技巧的 估计?给出空间复杂度。 (d) 如何设置 以不用中位数技巧得到 估计?给出空间复杂度,从而证明 Theorem 42。 (e) 如何实现增量步骤("以概率 将 乘以 ")?

题解:

(a) 计算期望

设 为第 步 被乘以 的事件的指示随机变量(概率 ),则

条件期望:

由全期望律: (若第 步事件发生 ,否则 )。

以 为初值,归纳得

因此 是 (真实计数)的无偏估计。

(b) 计算方差

计算 :

(展开 ,利用 (指示变量), 。)

由 ,递推:

方差:

等价地, (对大 )。

由 Chebyshev:

为让失败概率 (常数),需 ,取 。

(c) 带中位数技巧的参数设置

设 ,此时 Chebyshev 给出常数成功概率()。再用中位数技巧:独立运行 份,取中位数,总失败概率 。

空间分析: 算法存储变量 ,其中 ,故

(利用 对小 )。存储 需 bits:

总空间( 份):

(d) 不用中位数技巧

直接让单次成功概率 ,需 ,取 。

此时 的最大值为 ,存储 需

总空间(单份):

与 Theorem 42 一致:doubly logarithmic in ,logarithmic in 和 。

(e) 如何实现增量步骤

需要以概率 产生 Bernoulli 随机变量。

关键障碍: 是 的整数次幂,即 ,所以 。若 是无理数, 没有有限精度表示。

解决方案: 先把 四舍五入到最近的有理数 ,满足 (有理数稠密,总能做到)。用 代替 运行算法:误差不会变大(因为 ),空间只多常数 bits( )。

此时 是有理数 。实现 Bernoulli:均匀随机选 ,若 则返回 1,否则返回 0。


Problem 6: -Heavy Hitters(频繁元素集合)

题目: 设 为 -heavy hitters 集合。修改 Misra-Gries 算法,使其输出 满足 ,即输出所有 -heavy hitters(不遗漏)且输出的元素都至少是 -heavy hitter(不误报太多)。要求一趟、空间 。

题解:

用参数 运行 Misra-Gries 算法,得到估计 ,其误差保证为 (Theorem 40,参数 对应 )。

输出 。

包含性 :若 ,即 ,则

所以 。不会遗漏任何 -heavy hitter。

包含性 :若 ,即 ,则 (因为 ),所以 。

空间: 个元素,每个 bits,总空间 。


Problem 7: Bottom- 算法的 Distinct Elements 分析

题目: 考虑以下"Bottom-"算法, 为参数。选强 universal hash ,维护 (流中所有元素哈希值的最小 个),最终返回 。

(a) 证明对 ,以至少 概率返回 估计的 。

(b) 空间复杂度是多少?

题解:

(a) 正确性分析

设 为 distinct elements 的数目。

关键转化: 定义指示随机变量 ,其中 遍历所有 distinct elements。则:

至少个的值

期望: 由 的 marginal uniformity(强 universal 每个 均匀分布在 ):

方差: 由 pairwise independence(强 universal family 保证), 两两独立,且 :

Chebyshev: 取 ,对 关于均值 的偏离:

(最后一步取 )。

即 。

对称地(定义 ,类似分析),可得

Union bound: (需要多次重复 + 中位数以达到 )。

实际上对 使用中位数技巧后总失败率 ,即以 概率成功。

(b) 空间复杂度

需存: - hash function (取 为有理化版本): bits - 个哈希值: bits - 中位数技巧 份

总空间:


Part 2: 讲义知识点详解

按讲义(Week 8 - Streaming and Sketching I)结构整理,涵盖所有 Algorithm、Theorem、Lemma 及其完整证明。

§0 名词与符号速查

符号 含义
流的长度(stream length)
universe 大小( )
算法使用的空间(bits)
元素 在流中出现的频率:
distinct elements 的数目( )
distinct elements 数:
流长度:
的二进制表示中末尾 的个数(等价于整除 的最大 的幂次)

§1 流式算法的基本设定

设定: 输入 通过流 给出,每个 。算法只能使用 bits 的工作内存,通常目标是:

或

允许随机算法和近似算法,近似参数 (通常视为小常数)。

Quiz 知识点:Canvas 原题问 "流式设定中,输入以____顺序到达",答案是 Arbitrary(任意顺序)。这与上面的设定一致——streaming 算法不假设输入顺序。

Quiz 知识点:原题问 "大多数 streaming 问题可用随机化算法以 空间精确求解"(True/False),答案是 False。许多 streaming 问题需要 空间才能精确求解,这是 streaming 理论的核心下界。


§2 Majority 问题

问题: 流中是否存在某个元素 使得 ?

为什么这个问题在 streaming 中不 trivial:

在普通(非 streaming)设置中,这个问题很简单:遍历一次数组,用哈希表或数组记录每个元素的出现次数,然后找最大值。这需要 或 的空间。

但在 streaming 设置中,universe 大小 可能远大于可用空间 。例如, (所有可能的 IP 地址),但内存只有 bits。此时无法存储所有元素的计数器。

关键观察:如果某个元素 是 majority(出现 次),那么它有一个非常有用的性质:如果把 和其他每个元素都 "配对" 然后一起删除, 仍然会剩下至少一个。这个观察是 Boyer-Moore Majority Vote 算法的基础,也是 Misra-Gries 算法的核心思想。

Majority 的特殊性: - 最多只有 2 个元素可以出现 次 - 最多只有 1 个元素可以出现 次 - 所以如果我们能筛选出候选集合(大小只有 ),就可以用第二趟来精确验证


§3 Misra-Gries 算法(Algorithm 15)

历史背景:由 Jayadev Misra 和 David Gries (1982) 提出。算法也称为 "Frequent" 或 "Heavy Hitters" 算法。是 Boyer-Moore Majority Vote 算法的推广。

算法描述(用 "配对抵消" 直观理解)

参数 , 。维护一个最多 个元素的计数器字典 (用平衡二叉搜索树或链表实现)。

每个计数器 表示元素 的当前估计频率。算法的核心操作可以重新表述为:

  1. 元素 出现:若 已在 中,计数加 ( "多了一次自由出现")
  2. 新元素加入:若 不在 中但 ,加入 且计数为
  3. 配对抵消(关键步骤):若 不在 中且 (已满),则将 中所有计数器减 (到 则删除)。这相当于:新来的 和 中每个已有的元素各"配对"一次,然后全部删除。

直观:把 个元素(新来的 加上 中 个已有元素)各取一次组成一组,全部抵消。这 个元素各减少一次出现,相当于"消耗"了 个流中的元素。

Theorem 40: Misra-Gries 算法保证

定理: Misra-Gries 算法是确定性的一趟算法,对参数 ,输出所有元素 的频率估计 满足:

空间复杂度 。特别地,可以用两趟解决 Majority 问题。

证明:

空间复杂度分析: 中至多 个元素,每个元素需要存储其标识( bits)和计数器值( bits,因为计数 )。总计 。

上界 :

的值只在以下两种情况增加: - 元素 出现时且 已在 中(Line 6): - 元素 出现且 不在 中但 (Line 8):

只在 出现时才会增加,且每次最多增加 。因此 不会超过 在流中真实出现的次数 :

下界 (关键证明):

考虑 被减少的次数。 只在 Line 11("全体减 ")时被减少。每次 Line 11 执行时,恰好 个已有计数器各减 ,加上新元素 那一次未被加入(因为 已满),总共可以看作是 个计数器各减 。

等价视角:每次执行 Line 11,相当于从流中选取了 个元素( 个已在 中的元素,加上新来的元素 ),把这 个元素各取一次配对,然后全部删除。因此每次 Line 11 "消耗"了 个流中的元素。

整个流共有 个元素,所以 Line 11 最多执行 次。因此 被减少的总次数至多为 :

被减少的次数

由于 ,所以 :

Majority 问题的两趟解法(详细说明)

第一趟:用 运行 Misra-Gries,即 (最多维护 个计数器)。

  • 得到候选集合
  • 若存在 majority 元素 (即 ),则:

所以 (不会遗漏 majority 元素)。

  • 集合大小 (至多 个候选)。实际上因为 中每个元素满足 ,而 (每个计数器的值不超过其真实频率),所以 。

第二趟:重新遍历流(或保留流的数据),精确计数 中每个候选元素的出现次数。检查是否有某个候选元素出现 次。

  • 第二趟只需记录最多 个计数器,每个 bits
  • 总空间: (第一趟存 )(第二趟)

Quiz 知识点:Canvas 原题问 "Misra-Gries 算法是____的"(Randomised/Deterministic),答案是 Deterministic。MG 的确定性源于它不依赖任何随机比特——计数器更新规则完全由输入决定。

Quiz 高频混淆点:原题问 "Misra-Gries 可用单次遍历、空间 解决 MAJORITY 问题"(Yes/No),答案是 No。MG 解决的是 Frequent Elements(Heavy Hitters),不是 MAJORITY 问题本身。虽然可以用 MG 配合第二趟验证来解决 MAJORITY,但单次遍历只能给出频率估计,不能直接判断是否存在 。

为什么不能一趟解决 Majority?

如果要求一趟算法,且 的小空间,那么必须允许随机化和近似。但 Misra-Gries 本身已经是确定性的了,一趟给出的是 的估计。对于 Majority 问题,我们需要的精确判断( 或 ),而 Misra-Gries 一趟只能保证 ,无法区分 和 (差距只有 ,而误差界是 )。所以需要第二趟来精确验证。


§4 近似计数问题(Approximate Counting)

问题: 流中有 个 (其余为 ),估计 的值,允许 近似误差。


§5 Morris Counter(Algorithm 16)

算法描述

维护整数 (初始为 ):

  • 每次事件 时,以概率 令 (用 Bernoulli)。
  • 输出 。

空间 (只存 , 的值以高概率不超过 ,故用 bits)。

Lemma 40.1: Morris Counter 的期望与方差

引理: 设 (第 步后的 值), 。则:

证明(期望):

对任意 :

若且成功(概率)否则

其中 。条件期望:

由全期望律(Law of Total Expectation), 。从 递推:

同时得到更一般的公式(式 58): 。

证明(方差,计算 ):

计算条件期望:

展开平方:

由于 ,故 ;且 ,故 。因此:

取期望:

所以:

由全期望律:

代入式 (58): ,得:

关键化简(讲义中称为 "magical" step):由于 ,分两种情况验证: - 若 :左边 ,右边 ,等式成立; - 若 :左边 ,右边 ,等式成立。

因此:

累加求和:

对双求和进行化简:

其中用到 故 。令 ,则上式等于 。因此:

故:

Quiz 知识点: - 原题问 "Morris Counter 用_空间近似统计流中非零元素个数",答案是 。Vanilla Morris Counter 只存一个计数器 ,而 whp,所以只需 bits。 - 原题问 "Vanilla Morris Counter 的估计方差为_",答案是 。由 Lemma 40.1, (因为 是 的个数,最坏情况 )。这意味着标准差与估计值同阶,误差很大。 - 原题问 "Morris Counter 可通过____提供 -factor 近似",答案是 Median-of-means trick。Vanilla 版本方差太大,需要先用 个副本取均值降低方差,再用 组取中位数提升概率。注意顺序不能反(Tutorial 8 Problem 2)。

定理: median-of-means 版 Morris Counter 是随机一趟算法,对参数 ,输出 满足:

空间复杂度:

分析思路: 取 个 Morris Counter 的均值得到方差减小 倍的估计,由 Chebyshev 得常数概率的 估计。取 组,对组均值取中位数,成功概率升至 。


§6 Morris Counter 的 careful variant

算法

将 乘以 (而非 )的概率为 。输出 。

Theorem 42: careful Morris Counter

定理: careful Morris Counter 的一趟算法,对参数 ,输出 满足:

空间复杂度:

这是双对数于 的空间——比 Theorem 41 更好,且 是加法项(而非乘法项),不依赖 。

参数设置: 取 ,由 Chebyshev 直接得到 ,不需要 median trick。详细推导见 Problem 5(d)。


§7 Distinct Elements 问题

问题: 估计流中 distinct elements 的数目 ,允许 或常数倍近似。


§8 Tidemark(AMS)算法(Algorithm 17)

算法描述

选强 universal hash ,维护整数 (初始 )。处理每个 :若 ,令 。输出 。

空间 (存 用 ,存 用 )。

算法分析

定义: ,即经过哈希后末尾至少 个 的 distinct elements 个数。

注意: 。

期望: 由强 universal 保证 均匀分布, 。

方差: 由 pairwise independence(强 universal), (指示变量的方差 期望)。

双侧分析:

  • 上界 (Markov 不等式)。
  • 下界 (Chebyshev)。

取 :

结合中位数技巧:

Theorem 43: Tidemark 算法(median 版本)

定理: Tidemark(AMS)算法(加 median trick)是随机一趟算法,对参数 ,输出 满足:

空间复杂度:

限制: 这只给出常数倍( )近似,不能任意精度。

Quiz 知识点:原题问 "Vanilla Tidemark(AMS)算法对 Distinct Elements 给出____近似",答案是 constant-factor。Tidemark 通过 median trick 只能达到常数倍近似(如 ),而不是任意精度的 。

Quiz 高频混淆点:原题问 "Tidemark 算法解决 MAJORITY 问题"(True/False),答案是 False。Tidemark 解决的是 Distinct Elements( 估计),不是 MAJORITY 问题。这是完全不同的两个问题。


§9 BJKST 算法(Algorithm 18)

算法描述

参数 , , 。

选两个强 universal hash: (用于 ), (用于压缩元素标识)。

维护阈值 和集合 (存 对):

  • 若 ,将 加入 ;
  • 当 时,令 ,并删除 中所有 的对。

输出 。

两个 hash 的分工: - :用于"尾随零"过滤,保证近点碰撞,按 进行层次筛选 - :用于压缩元素索引,把 压缩到 ,大幅节省存储每个元素所需的 bits

Theorem 44: BJKST 算法

定理: BJKST 算法(加 median trick)是随机一趟算法,对参数 ,输出 满足:

空间复杂度:

这比 Tidemark 更好:近似精度可以任意小( 可趋近 )。

Quiz 知识点:原题问 "Vanilla BJKST 算法对 Distinct Elements 给出____近似,空间 ",答案是 -factor。BJKST 通过两层哈希( 做 zeros 过滤, 做压缩)将空间降至 ,同时提供任意精度的 近似。这是 BJKST 相比 Tidemark 的核心优势。

与 Tidemark 的对比:

Tidemark BJKST
近似比 常数 任意
空间
精度 固定常数 可调

§10 核心记忆卡片

算法/定理 问题 空间 误差/保证
Misra-Gries(Theorem 40) Frequency estimation(频率估计) ,确定性
Morris Counter(Theorem 41) Approximate counting(近似计数 ) ,概率
Careful Morris(Theorem 42) Approximate counting ,概率
Tidemark/AMS(Theorem 43) Distinct elements 常数倍近似
BJKST(Theorem 44) Distinct elements ,概率
Bottom-(Problem 7) Distinct elements ,概率

核心技巧汇总:

  1. Median-of-means: 先取 份均值降方差,再取 份的中位数升概率。顺序不能反(Problem 2)。
  2. 两层哈希: 第一层做功能哈希(如 LSH 中的 locality-sensitive,或 过滤);第二层做压缩(如 或普通 hash table),前者定性,后者省空间。
  3. 强 universal vs 真随机: 强 universal family 只需 bits 存储,且保证 pairwise independence,足以用 Chebyshev 分析;真随机需要 bits(Problem 3)。
  4. 的概率: (由 均匀分布),这是 Tidemark 和 BJKST 的核心随机结构。
  5. Morris Counter 的关键: 的期望递推 ,精确来自 Bernoulli 的期望恰好是 ——计数器在期望上是线性的。

Part 3: Week 8 Quiz 回顾

来源:Canvas Quiz,整理自 5270-questions-organized.md。每题含中英文题目、正确答案及知识点解析。


Question 1

[EN] The Misra-Gries algorithm allows us to solve the MAJORITY problem in one pass, using space .

[CN] Misra-Gries 算法可用单次遍历、空间 解决 MAJORITY 问题。

选项 答案
No ✅
Yes ❌

知识点:MG 解决的是 Frequent Elements(Heavy Hitters),不是 MAJORITY。虽然可用 MG 配合第二趟验证来解决 MAJORITY,但单次遍历只能给出频率估计。


Question 2

[EN] In the standard streaming streaming setting, the input comes one element at a time, in _________ order.

[CN] 标准数据流设定中,输入元素以____顺序到达。

选项 答案
Uniformly random ❌
Arbitrary ✅
Sorted ❌
Best-case ❌

知识点:Streaming 算法不假设输入顺序,必须在任意顺序下都能正确工作。


Question 3

[EN] Most streaming problems can be solved exactly by a randomised algorithm using space .

[CN] 大多数数据流问题可用随机化算法以 空间精确求解。

选项 答案
True ❌
False ✅

知识点:许多 streaming 问题需要 空间才能精确求解。因此必须允许近似算法和概率保证。


Question 4

[EN] The Misra-Gries algorithm is ________.

[CN] Misra-Gries 算法是____的。

选项 答案
Randomised ❌
Deterministic ✅

知识点:MG 的计数器更新完全由输入决定,不依赖任何随机比特。这是 streaming 中罕见的确定性算法。


Question 5

[EN] The Morris Counter algorithm provides an approximate count of the number of non-zero elements in a stream of length using space:

[CN] Morris Counter 用____空间近似统计流中非零元素个数。

选项 答案
❌
✅
❌
❌

知识点:Vanilla Morris Counter 只存一个计数器 ,而 whp,所以只需 bits。对比直接存储需要 bits。


Question 6

[EN] The "vanilla" version of the Morris Counter gives an estimate of which has variance ____

[CN] "Vanilla" Morris Counter 给出 的估计,方差为____。

选项 答案
❌
❌
✅
❌

知识点:由 Lemma 40.1, 。最坏情况 ,方差为 。标准差与估计值同阶,误差很大,需要 Median-of-means 改进。


Question 7

[EN] The "vanilla" Tidemark (AMS) algorithm gives a ____ approximation for the Distinct Elements problem using space . [Select the best that applies]

[CN] "Vanilla" Tidemark(AMS)算法对 Distinct Elements 给出____近似,空间 。

选项 答案
additive ❌
constant-factor ✅
-factor ❌

知识点:Tidemark 通过 median trick 只能达到常数倍近似(如 ),不是任意精度的 。达到 需要 BJKST。


Question 8

[EN] The "vanilla" BJKST algorithm gives a ____ approximation for the Distinct Elements problem using space . [Select the best that applies]

[CN] "Vanilla" BJKST 算法对 Distinct Elements 给出____近似,空间 。

选项 答案
additive ❌
-factor ✅
constant-factor ❌

知识点:BJKST 通过两层哈希( 做 zeros 过滤, 做压缩)将空间降至 ,同时提供任意精度的 近似。这是 BJKST 相比 Tidemark 的核心优势。


Question 9

[EN] The Morris Counter can be made to provide an -factor approximation to the number of non-zero elements in a stream using the ____________.

[CN] Morris Counter 可通过____提供 -factor 近似。

选项 答案
Median trick ❌
Median-of-means trick ✅
Trick-or-treat strategy ❌
Mean trick ❌

知识点:Median-of-means = 先取 份均值降方差,再取 份的中位数升概率。顺序不能反(Tutorial 8 Problem 2)。


Question 10

[EN] The Tidemark algorithm solves the MAJORITY problem in two passes.

[CN] Tidemark 算法用两次遍历解决 MAJORITY 问题。

选项 答案
False ✅
True ❌

知识点:Tidemark 解决的是 Distinct Elements( 估计),不是 MAJORITY。MAJORITY 是 Heavy Hitters 问题,应使用 Misra-Gries 或 CountMinSketch。


Week 8 Quiz 速查表

题号 核心概念 正确答案
1 MG 解决 MAJORITY No
2 输入顺序 Arbitrary
3 精确求解可能性 False
4 MG 确定性 Deterministic
5 Morris Counter 空间
6 Morris Counter 方差
7 Tidemark 近似 constant-factor
8 BJKST 近似 -factor
9 Morris 改进方法 Median-of-means
10 Tidemark 解决 MAJORITY False

高频混淆点: - MG 解决的是 Heavy Hitters 不是 MAJORITY(Q1, Q10) - Morris Counter 空间 但方差 (Q5 vs Q6)——方差太大需要改进 - Tidemark 是 constant-factor,BJKST 是 -factor(Q7 vs Q8)——BJKST 更精确但空间更大