中文

Sample(x)=(a*x<=t) 是以 1/8 概率的区分器

数据结构与算法 2015-08-04 v4

摘要

对于键宇宙U,随机采样函数Sample:U->{0,1}若对U中键x的任意赋值v(x)(包括至少一个非零v(x)≠0),采样和sum{v(x)|x∈U且Sample(x)}以至少概率p非零,则称其为概率p的区分器。此处键值可来自任意交换幺半群(加法满足交换律和结合律,零元为单位元)。此类区分器由Vazirani[1986年博士论文]提出,Naor和Naor将其用于小偏差概率空间[STOC'90]。常数概率区分器用于键值未直接计算但和易于计算的场景。一个简单例子是获得键值对流(x₁,v₁),(x₂,v₂),...,(xₙ,vₙ),其中同一键可能多次出现。键x的累积值为v(x)=sum{vᵢ|xᵢ=x}。由于空间限制,可能无法为每个键x维护v(x),但采样和易于作为单值sum{vᵢ|Sample(xᵢ)}维护。本文证明,当处理w位整数时,若a为均匀随机奇w位整数且t为均匀随机w位整数,则Sample(x)=[ax mod 2^w <= t]是以1/8概率的区分器。使用标准单位,即w=8、16、32、64,我们利用w位乘法在模2^w下工作,自动丢弃溢出,然后采样决策由C代码a*x<=t实现。先前的此类采样器对计算机极不友好,例如Naor和Naor[STOC'90]的区分器更复杂,涉及一个7独立哈希函数。

关键词

引用

@article{arxiv.1411.4982,
  title  = {Sample(x)=(a*x<=t) is a distinguisher with probability 1/8},
  author = {Mikkel Thorup},
  journal= {arXiv preprint arXiv:1411.4982},
  year   = {2015}
}

备注

To appear in different format in the proceedings of FOCS'15