标签:常量 count ESS 最小 bucket [] sed long 分类
class CountMinSketch {
long estimators[][] = new long[d][w] // d and w are design parameters
long a[] = new long[d]
long b[] = new long[d]
long p // hashing parameter, a prime number. For example 2^31-1
void initializeHashes() { //初始化hash函数family,不同的hash函数中a,b参数不同
for(i = 0; i < d; i++) {
a[i] = random(p) // random in range 1..p
b[i] = random(p)
}
}
void add(value) {
for(i = 0; i < d; i++)
estimators[i][ hash(value, i) ]++ //简单的对每个bucket经行叠加
}
long estimateFrequency(value) {
long minimum = MAX_VALUE
for(i = 0; i < d; i++)
minimum = min( //取出最小的估计值
minimum,
estimators[i][ hash(value, i) ]
)
return minimum
}
hash(value, i) {
return ((a[i] * value + b[i]) mod p) mod w //hash函数,a,b参数会变化
}
}
通过哈希函数的设置、减少开销
标签:常量 count ESS 最小 bucket [] sed long 分类
原文地址:https://www.cnblogs.com/vancasola/p/9457423.html