“找两个相同输出”是算法设计中最常见的需求之一:密码学家想知道一个哈希函数是否容易被找到碰撞(生日攻击),数据库系统要检测重复记录,而许多量子算法的核心子程序本质上都是某种碰撞搜索。但在量子查询复杂度的语境下,“碰撞”其实对应两个经常被混淆、难度却截然不同的版本。Collision problem 带有强承诺:函数要么是一一的,要么是严格二对一的;element distinctness 没有任何承诺,只问列表中是否存在任意重复。前者可以用 次查询解决,后者的最优查询复杂度是 。两个指数 都不是凭空掉下来的:它们分别来自”样本表大小 “与”Grover 搜索成本”、“量子行走维护成本”与”命中标记态成本”之间的平衡。本词条的目标是把这两个平衡逐项推导出来,并沿此框架扩展到 -distinctness、claw finding 与多碰撞问题。

阅读本词条需要的前置知识:Grover 搜索与振幅放大()、量子行走的基本概念(的量子行走词条有所帮助但不必须)、以及查询模型(oracle model)的约定——我们把一次对 的求值记为一次查询,而查询之外的计算暂不计费,到第 8 节再回头清算这笔账。

1. 两个问题的承诺差异

给定一个黑箱函数(oracle),其中 。我们只能通过查询 来获取信息。

Collision problem(碰撞问题): 承诺 满足两种情形之一——要么 是一一函数(所有输出互不相同),要么 是严格二对一函数(每个像恰有两个原像)。任务是判断属于哪一种情形。

Element distinctness(元素唯一性): 没有任何承诺。任务是判断是否存在 使

在搜索版本中,还要求输出这样一对

承诺的差异为什么重要?看正实例(存在碰撞的情形)中”证据”的数量。二对一承诺意味着:一旦 不是一一的,它就有整整 个碰撞对——每个输出值都参与一对。碰撞证据遍地都是,随机抽样很容易撞上。相反,element distinctness 的最坏正实例可能只有唯一一对碰撞 ,其余 个输出全不相同。要从 个输入里翻出这唯一的一对,直觉上当然难得多。本词条后面会看到,这个直觉精确地体现在指数上:证据多则 ,证据少则

还有一点值得强调:collision problem 是一个承诺问题 (promise problem),算法只需在承诺成立的输入上正确;而 element distinctness 是完全函数(total function)的判定问题。承诺问题可能比对一般输入判定更容易,这本身就是查询复杂度中一个反复出现的主题。

2. 经典算法基线:生日悖论与”必须读完”

在看量子算法之前,先弄清楚经典算法能做到什么,这样才知道量子优势从何而来。

Collision problem 的经典复杂度是 ,这就是生日悖论。 具体地,随机均匀地查询 个不同的输入 。在二对一情形,逐个加入样本:已查 个输入且尚未碰撞时,第 个输入的取值落在前 个值上的”另一半”原像共有 个(每个已见输出恰有一个未查的原像),剩余未查输入共 个,所以这一步不产生碰撞的概率是 。于是 个样本全无碰撞的概率为

其中第一步近似用了 (我们关心 的情形),第二步用了 小时成立),最后一步是等差数列求和。取 ,则 :只要 是适当常数,发现碰撞的概率就是常数。这说明 次查询足够(一一情形下抽样永远无碰撞,正好给出判定信号);反过来,少于这个量级时二对一情形下也大概率看不到碰撞,无法区分两种情形,所以 也是必要的。这就是”生日攻击”的复杂度来源: 天中只要约 个人就很可能有生日重合。

数值小例子。,要求以约 的概率在二对一情形下发现碰撞:解 ,即 次查询。注意常数 无关——这正是""的含义;到下一节会看到,量子算法把这约 次压到约 次。

Element distinctness 的经典复杂度是 上界平凡:查询全部 个输入,排序后扫描相邻项即可,查询 次、经典时间 。下界用对抗论证:对手前 次查询一律返回互不相同的值(这在两种答案下都合法),此时算法仍无法判定第 个值是否与之前某个值重复,所以确定性算法必须查满 次;随机算法的下界 可由 Yao 原则对”全部不同 vs 只有一对重复”的输入分布证得。换言之:最坏情形下经典算法省不掉把整张表读完。

对比一下量子将要达到的目标:collision 从 降到 ,element distinctness 从 降到 。两者都是多项式级加速,但都不是平方根式的 Grover 加速——这正是本词条要解释的现象。

3. 抽样表加 Grover:collision 的 算法

第一个量子算法来自 Brassard–Høyer–Tapp(1997,见文末参考文献),思想极其朴素:先抽样建一张小表,再用 Grover 在表外搜索能与表内匹配的元素。 它是”量子算法 = 经典骨架 + Grover 加速部件”的范例。

历史背景值得交代一句:这篇文章发表在 Grover 算法(1996)之后不久,是”Grover 不只能搜一个目标、还能嵌入更复杂算法结构”的最早示范之一;同时它留下的问题——element distinctness 没有二对一承诺、此套路失效——悬置了数年,直到 Ambainis 2003 年的量子行走算法才解决(第 4–6 节)。这段历史说明: 之间的差距不是技术欠缺,而是两个问题的本质难度差异(第 7 节的下界将证实这一点)。

算法步骤

对 collision promise(一一或严格二对一),取一个待定的样本大小

  1. 建表。 随机选取 个输入,逐一查询,把 存入一张排序表(或哈希表)。如果表内已经出现两个相同的 值,直接宣布”二对一”并结束。
  2. 表外 Grover 搜索。 在其余 个未查询的输入上做 Grover 搜索,标记条件为” 出现在表中”。若搜到,宣布”二对一”;若搜不到,宣布”一一”。

正确性在一一情形是平凡的(表内和表外都不会有匹配)。关键是二对一情形下第 2 步有多少个标记项:由于第 1 步没有在表内发现碰撞,每个已抽样输出的”另一半”原像都不在样本里(否则它就会被查出来造成表内碰撞),因此这 个原像全部落在表外的 个输入中。也就是说外部恰有 个标记项,标记比例为

由 Grover 搜索的复杂度(在 个条目中有 个目标,查询次数 ),第 2 步的成本是

参数平衡

总查询数是建表成本与搜索成本之和:

这里 是我们自由选择的参数: 越大,表越贵,但表外标记越稠密、Grover 越快; 越小则相反。两项一升一降,最优出现在两项同阶处(若一项远大于另一项,把参数往降低大项的方向调总能改进)。令

代回得

数值小例子。。经典生日攻击需要约 次查询;量子算法取 ,建表 次查询,Grover 约 次查询,合计约 次——恰好是 ,与上面的平衡一致。

为什么这个套路对唯一碰撞失效

这个算法真正利用的是二对一承诺带来的 个标记项。假如把同样的思路照搬到只有唯一碰撞对 的输入上:随机 元样本包含 的概率只有约

个样本中每个命中两个特定位置之一的概率)。即使样本幸运地包含了 ,表外也只有 一个标记项,Grover 需要 次查询才能找到它。算一笔总账:为了让样本命中端点,平均要重复抽表 轮,每轮建表花 次查询,再加上最后一轮成功的 Grover:

注意第一项与 无关——反复抽表的成本正好抵消了小表的好处,总成本退化为线性。结论:抽样加 Grover 不能给出 element distinctness 的 算法;要处理唯一碰撞,需要一种”不把已查询数据丢掉重来”的机制。这正是量子行走登场的动机。

4. 量子行走搜索框架:setup、update、check

Ambainis 的 element distinctness 算法(2003,见文末参考文献)属于一大类”量子行走搜索”算法。在深入 Johnson 图之前,先用平实语言把这个框架的直觉讲清楚。

经典类比:边走边攒数据的随机抽查。 想象一个检查员维护一个容量为 的抽屉:抽屉里始终放着 个已查询过的 记录。每一步,他随机扔掉抽屉里的一条记录、随机查一个新输入补进来;每当抽屉里出现两条 值相同的记录,就宣布发现碰撞。这个随机过程是状态空间(所有 元子集)上的一个马尔可夫链:状态是”抽屉内容”,一步转移是”换一个元素”。它不会从头重来——已查过的数据被保留并复用,这与上一节反复抽表的浪费形成对照。

这个经典随机过程多久能成功?直觉上有两个时间尺度:

  • 混合时间 从任意抽屉内容出发,走多少步才能”忘记”起点、接近稳态分布。这里 是转移矩阵的谱隙 (spectral gap)——第二大特征值与 的距离。谱隙越大混合越快。
  • 命中概率 在稳态分布下,抽屉里恰好含有完整碰撞对的概率(称为标记比例)。

混合一次后,每步有 的概率处于标记态,所以经典上大约需要

步(混合 步,再以 的概率命中;严格说每 步提供一次”接近独立的抽样机会”)。

量子行走把这个乘积开平方。 Szegedy 提出、并由 Magniez–Nayak–Roland–Santha 等人发展成标准工具的量子行走搜索框架表明:对满足常规条件(遍历、可逆)的马尔可夫链,存在相应的量子行走,能以

的总成本以高概率找到标记顶点。这里三个符号分别是:

  • setup):制备”稳态叠加”(所有顶点的均匀叠加连同其数据)的成本;
  • update):实现一步行走(把顶点换成相邻顶点并同步更新数据)的成本;
  • check):检查当前顶点是否标记(并翻转其相位,供振幅放大使用)的成本。

公式中两个因子各有明确的来源: 来自振幅放大——把标记振幅从 推到常数需要 次迭代; 来自量子行走的谱分析——行走算子在”标记子空间”附近的特征相位间隔由 控制,相位估计要分辨它就得付出这个精度(这与 Grover 中”旋转角 “是同一类平方根现象)。对 element distinctness,我们将会看到 都是常数次查询,所以行走搜索的总步数就是 ,剩下的全部工作就是算出 并和 setup 成本 做平衡。

为什么谱分析里出现的是 而不是 这是量子行走相对经典行走加速的核心机制,值得多交代一句(不追求严格证明)。Szegedy 的构造把马尔可夫链的转移矩阵 提升为两个反射的乘积:一个反射关于”从每个顶点出发的一步转移叠加”,另一个关于对偶方向。与 Grover 迭代一样,两个反射的乘积在关键二维子空间上是旋转,而旋转角由链的谱决定:若 的特征值是 ,则行走算子相应的特征相位正比于 。谱隙 被开平方,正是因为特征相位是特征值的反余弦——。经典行走要等待 步才能让慢模式衰减,量子行走却只需分辨 量级的相位差,一减一除之间就是平方根加速。对完全图上的随机行走(Grover 搜索可看作它的行走版本),,公式退化为纯振幅放大的 ,与 Grover 词条的结果自洽。

5. Johnson 图:用量子行走状态保存已查询值

现在把框架具体化。Ambainis 算法在 Johnson 图 上行走。

定义。 Johnson 图 的顶点是 的所有 元子集 ;两个顶点 相邻当且仅当它们恰好相差一个元素,即

每个顶点的度是 (选扔掉哪个: 种;选补进哪个: 种)。

一个技术注记(初次阅读可跳过)。 严格的 Szegedy 型行走并不直接在顶点空间 上作用,而是在”顶点 × 硬币”的张量积空间上作用:硬币寄存器记录”这一步要扔掉哪个元素、补进哪个元素”,行走算子是硬币算子与受控交换的乘积。引入硬币是为了让”从 出发的均匀随机转移”成为可逆操作——直接的一步转移会把 个可能的去向混叠,不可逆。本词条所有复杂度结论不受影响:硬币维度 只贡献 的空间与门开销,update 的查询数仍是一次新查询。

量子态连同数据一起保存。 行走所在的希尔伯特空间不只编码子集 ,还携带已经查询过的数据:

内含有两个相同的输出值(即存在 使 ),就把 标记。换句话说,标记条件”抽屉里有碰撞”正是第 4 节经典类比里的判定方式。

三种成本各是多少?

  • Setup: 制备所有 元子集的均匀叠加 本身不需要查询(这是计算基矢上的已知叠加);但对每个 查询其中全部 个元素以加载 ,需要 次查询(可并行化为对 oracle 的 次受控调用,计 次查询)。故
  • Update: 相邻子集之间只删除一个索引、加入一个索引,所以一步行走只需一次新查询(查入新元素 ),外加把旧值可逆地擦除(擦除本身不再调用 oracle)。故 次查询。
  • Check: 检查 内是否有重复输出。如果数据结构按输出值维护(排序或哈希),查重只是读已存数据,完全不需要再查 oracle。故 次查询。

为什么顶点取子集而不是序列? 碰撞条件” 上有重复”只与元素集合有关,与排列顺序无关。若把顶点取成有序 元组,状态空间会多出 倍的冗余:同一个抽屉内容被复制 份,而标记比例、谱隙都不会因此变好。取子集后,顶点数 已是描述”容量 的抽屉”所需的最小状态空间。另外,均匀叠加 是可高效制备的:先制备 上 Hamming 权重恰为 的 Dicke 型叠加(有已知的高效构造),再把权重串读作子集的特征向量即可;关键是它不依赖 ,所以制备本身不花查询。

于是行走搜索阶段的总查询数就是行走步数 ,总查询复杂度形如

剩下唯一要做的,是对”唯一碰撞”这一最坏情形算出 ,对 Johnson 图算出

6. 的完整平衡

本节做两个计算,然后把它们拼起来。

标记比例

假设整个输入中只有唯一碰撞对 (这是 element distinctness 的最坏正实例)。顶点 被标记当且仅当 。在均匀随机(或均匀叠加)的 元子集中,标记顶点所占比例为

分子是”必须包含 ,其余 个位置从剩下 个元素中任选”的计数。把组合数展开逐步化简:

其中第二步约去了公共因子 ;第三步用了 ;最后一步因为 大时 。直觉:每个位置以概率 被抽中,两个特定位置都被抽中约是

可手算的小例子。。全部子集 个;同时包含两个指定元素的子集有 个;于是

用公式验证:,一致。

谱隙

取 Johnson 图上的简单随机行走(每步均匀随机地”扔一个元素、补一个元素”),其转移矩阵是 ,其中 是邻接矩阵。Johnson 图属于结合方案 (association scheme) 中的经典例子,其特征值有已知的封闭表达式:归一化转移矩阵的特征值为

(这里假设 )。 给出 (稳态对应的特征值);谱隙由次大特征值 决定:

其中第二步展开 再减去 。因此

这个 的直觉值得记住:每一步行走只更换 个元素中的一个,要”忘记”初始子集、把抽屉内容整体洗一遍,自然需要 步——混合时间就是 ,谱隙是它的倒数。这与上面对易拉罐式”一次换一件”过程的直觉吻合。(Ambainis 原算法使用的行走链与此略有差别,但谱隙同为 ,不影响复杂度结论。)

合成与平衡

代入行走步数:

注意中间一步: 的幂次是 ——谱隙里的 恰好把标记比例 里的一个 消掉。于是总查询数为

同样令两项同阶来平衡(理由同第 3 节:一升一降的两项之和在相等处取最优量级):

代回:

数值小例子。 仍取 :经典算法需要约 次查询,而量子算法取 ,setup 花 次查询,行走阶段 步、每步常数次查询,合计约 次——比经典少了约 50 倍,且两项同阶,印证了平衡。

行走为什么赢过反复抽样? 值得停下来比较一下这个算法与第 3 节失败方案的差别。反复抽样每一轮都把 条已查记录整体丢弃、重新付费;行走则把”换样本”分摊到每一步只换一次元素、只付一次查询。定量地看:唯一碰撞下,要让抽屉里出现完整碰撞对,本质上需要抽到约 量级的”换元素”机会(标记比例 的倒数,再叠加混合开销),行走把这些机会按每次 次查询的单价购入,而反复抽样按每轮 次查询、成功率仅 的批发价购入——折算单价反而更贵。数据复用就是 相对线性经典复杂度的全部来源(再加上量子行走的平方根加速)。

与第 3 节对照着看,两个指数的来历就清楚了:collision 的平衡是 (标记多,Grover 便宜),解出 ;element distinctness 的平衡是 (唯一标记要同时含两个端点, 多压了一个 ),解出

7. 下界:为什么 已经是最优的

上界之外,多项式法 (polynomial method) 与量子对抗法 (quantum adversary method) 都给出了 element distinctness 的 查询下界(Aaronson–Shi 用多项式法首先证得,Ambainis 的对抗法及 Kutin 的后续工作给出了处理大值域情形的版本);collision problem 同样有匹配的 下界。因此

两个算法都是查询复杂度意义下最优的。

下界证明本身超出本词条范围,但直觉可以一句话说清:多项式法把” 次查询后 acceptance 概率”表示成输入的、次数不超过 的多项式;而”唯一碰撞 vs 无碰撞”这两类输入在局部统计上极其相似,任何能区分它们的多项式必须有足够高的次数,迫使 。这个”证据太少所以难以区分”的定量形态,与第 1 节的承诺差异直觉首尾呼应。

为什么下界是 而不是 Grover 式的 这是初学者最容易问的问题,值得把直觉再推进一步。Grover 下界 来自”每次查询只能在一个位置打探目标”;而 element distinctness 的证据是一对位置 ——单次查询 所获得的信息,只有在将来恰好查到配对的 时才会”兑现”。多项式法把这句话定量化:acceptance 多项式里能区分两类输入的单项式必须同时涉及两个配对位置,这相当于要求多项式次数翻倍量级地增长,下界于是从 被推高到 。量子对抗法给出同一结论的另一视角:把”无碰撞输入”逐个换成”有一对碰撞的输入”,每次查询最多在目标函数值上积累 量级的进展( 个已定位的候选对摊到 个位置上),积累满 需要 步。两种方法的共同信息是:成对证据比单点证据贵,贵的幅度恰好是

8. 数据结构为何是算法的一部分

到目前为止,一切都在查询模型下算账:排序、插入、查重都被视为免费。但要宣称一个”时间优势”,这些账必须补交——这是本节要强调的方法论要点,也是阅读所有量子行走文献时的保留条款。

问题在于:真实量子电路必须在叠加的 上可逆地维护 。行走态是 ,一步 update 要对所有分支同时完成”删除旧记录、插入新记录”,且不能留下会泄露路径信息的垃圾比特(否则相干叠加被破坏)。如果用普通数组存放 ,插入一个元素可能要在最坏处移动 个已有元素,每一步的时间就多乘一个 因子——总共 ,在 时是 ,反而比经典排序还慢

补救办法是精心设计支持可逆操作的数据结构:可逆哈希、radix tree(字典树),以及在行走内部再嵌套一层小行走来分摊更新成本等技术,可以把每次 update/check 的额外时间开销压到 量级。因此,引用本词条结论时应分别报告:

  • oracle 查询复杂度结论;
  • 要达到近似相同的门时间,还需要相干随机访问(QRAM 类的假设)与上述碰撞数据结构配合,实际时间界通常写成 并依赖具体模型。

这一区分对后续发展同样关键:新型的 multidimensional / electric-network quantum walk(见文末 Zoo 172、173、464 及相关文献)对 -distinctness 已能在若干参数范围内让时间复杂度匹配查询复杂度到 polylog 因子——“若干范围”是模型依赖的保留条件,使用时需要核对原文假设。

9. -distinctness 与 learning graph

问题推广。 -distinctness 要求判定是否存在 个互不相同的输入 具有相同输出( 即 element distinctness)。同样按”唯一 -碰撞”的最坏情形分析。

普通 Johnson 图行走。 顶点仍是 元子集,标记改为” 包含完整的 -碰撞”。唯一目标下, 个指定元素全部落入随机 元子集的比例为

推导与第 6 节逐字平行:约去 后,分子剩 个因子、分母剩 个因子。谱隙不变,。于是行走步数

总成本

令两项同阶:

代回得 。验证两个特例: 时指数是 ,回到第 6 节; 时指数趋于 ,即查询数趋于线性——碰撞越大越难”漏看”,但量子加速的余量也越小。

数值小例子。:最优子集大小 ,行走步数 ,两项再次同阶,总计约 次查询,而经典算法仍需 次。可以看到 增到 时,量子查询数从 涨到 ,加速比从约 倍缩到约 倍——这正是指数从 爬向 的具体表现。

Learning graph 的改进。 注意普通行走的一个浪费:它要求一次把所有 个目标元素都装进同一个 元子集,并为”不在任何碰撞里的杂项元素”也支付了加载成本。Belovs 提出的 learning graph 框架放弃了这种齐整结构:它分阶段加载”可能属于碰撞结构”的变量(先查一批,再以它们为线索查下一批),并按证书(certificate)的组合结构重新为各阶段的流 (flow) 加权。对常数 ,这给出形如

的更好查询界。验证两个特例: 时指数为 ,与 Ambainis 一致; 时指数为 ,优于普通行走的 。需要强调的是,learning graph 本身是一个查询复杂度的构造框架,其时间高效实现需要 nested / multidimensional update 技术的支持(见第 8 节的保留条款)。

10. Claw、频率矩与多碰撞

Claw finding。 给两个函数 ,寻找一对 使 (想象两份名单找共同成员)。它与 element distinctness 的区别在于碰撞发生在两个不同的表之间:单表情形”两个端点都在同一个子集里”,现在一个端点必须来自 、另一个来自 ,子集缓存结构要相应拆分。

算法思路是直接推广第 5–6 节:在两个 Johnson 图的乘积图上行走,顶点是一对子集 ,分别缓存 ,标记条件是两张缓存表有共同输出。与单表情形不同的是, 不对称时两个子集应取不同大小:设 ,setup 成本是 ,标记比例与谱隙都随 各自变化,需要重新做一次第 6 节那样的两项平衡(现在是两个自由参数的联合优化)。三函数 claw、非均匀值域等变体也都需要各自重新平衡。这些变体在密码分析(如对 paw/claw 结构的攻击)中反复出现,是”碰撞搜索 + 参数再平衡”这一方法论的练兵场。

频率矩:把”有没有碰撞”推广为”有多少碰撞”。 定义 的第 阶频率矩

是输出值 的原像个数。它与碰撞计数有精确的联系:把 展开为有序对的计数,

最后一步把有序对拆成对角项 (共 个)与非对角项(每对无序碰撞贡献 )。所以 当且仅当无碰撞,估计 就是定量版的 element distinctness;更高阶矩则度量输出的”不均匀程度”。

可手算的小例子。 的取值列表为 。则

用恒等式验证:无序碰撞对为 对加 对共 对,,一致。对二对一承诺的输入,同样的算法给出 (习题 5 要求补全这一计算)。

多碰撞与可复用行走。 如果任务不是找一对、而是找大量碰撞(例如某些格密码筛法 (lattice sieving) 的子程序要反复收集碰撞对),朴素做法是每找一个就从头重跑一次行走——这浪费了已经花查询换来的数据。Reusable quantum walk 技术针对这一浪费:在测得一个解之后,把剩余的量子数据保留并复用到下一轮搜索中,而不是重新 setup,从而改善这类应用的总成本。这一方向与第 8 节的时间–查询区分密切相关:复用节省的正是反复 setup 的查询与时间。

多参数平衡的共同模式。 回顾全课,从 ,所有指数都来自同一个三步操作:(i) 写出 setup 成本(关于缓存大小 递增)与搜索成本(关于 递减)两项;(ii) 用标记比例与谱隙把搜索成本写成 的显式函数;(iii) 令两项同阶解出 。掌握这个模式后,面对 claw、-distinctness 乃至更复杂的证书结构,剩下的工作只是如实写出每一项——指数会自己算出来。这是查询复杂度分析中最值得带走的方法论。

11. 小结与习题

要点回顾:

  • 二对一 collision 有大量标记项(样本的 个”另一半”全在表外),抽样表加 Grover 的平衡 给出 ;经典基线是生日悖论
  • Element distinctness 的最坏正实例只有一对碰撞,抽样加 Grover 失效(反复建表成本抵消优势);改用 Johnson 图量子行走,标记比例 与谱隙 经 Szegedy 型框架合成 步,与 setup 的 平衡后给出 ;多项式法/对抗法下界 表明其最优。
  • 查询优势不等于时间优势:setup/update/check 的电路成本与可逆数据结构(哈希、radix tree、嵌套行走)决定 能否转成门时间结论;引用时应分别报告并核对模型假设。
  • 普通行走解 -distinctness 给出 (平衡 );learning graph 分阶段加载证书结构,改进到
  • Claw finding 用两个 Johnson 图的乘积;频率矩 精确编码碰撞对数;找大量碰撞时用 reusable quantum walk 避免反复 setup。

习题:

  1. (平衡练习)分别最小化 :令两项相等解出最优 ,比较两个指数;再用对 求导的方法验证最优点的确在两项同阶处。
  2. (精确计数)对唯一碰撞对 ,从 出发,逐步推出 ;并对 分别用两种表达式算出数值、比较与近似 的误差。
  3. -distinctness 平衡)对普通 Johnson 图行走推导 -distinctness 的最优 ,并验证 时分别回到 ;解释为什么 增大时量子加速的余量变小。
  4. (抽样失效的定量验证)第 3 节断言:对唯一碰撞用”反复抽表加 Grover”的总成本约为 。补全推导:样本含某个指定端点的概率为什么是 ?若改为”样本同时含两个端点才收工”,成本又如何变化?
  5. (频率矩恒等式)证明 ,并由此说明:对承诺” 一一或二对一”的输入, 的两个可能取值各是多少。
  6. (learning graph 指数)验证 ;计算 的指数并与普通行走的 比较,说明 learning graph 的相对优势随 如何变化。

参考文献与 Zoo 覆盖


参考资料