大数据科学计算基础算法部分复习(1)-----亚线性空间算法
亚线性空间算法 Q1近似计数问题: 直观思想: 就是把原先的数利用 概率压缩存储 。比如一个出现了2 9 次的数 a i ,如果表示为2的9次方会很占地方,因此就记9,而每出现一次就有1/2 i 的可能加一,若出现了2 i 次必定+1,那么最终统计看实际出现此处就用记录的数字k,算2 k-1 即可。 为什么要-1,可能是为了出现0次的时候可以算出来是0吧,即为了求均值等于实际值。 Morris算法就是最原始的,即上述直观思想的算法实现。 Morris+ 就是跑k个之后取k个的平均值。 Morris++ 就是跑m次后用median技术取中值。 Q2不重复元素数目。 直观思想: 假设哈希之后就是均匀的分布在0-1上了,那么有n个的话,最小的就是1/n了,因此就是最终返回1/z - 1,我理解这个减1,就是因为初始z是1。 FM算法 就是这样最原始的。 FM+算法就是运行q次后取平均值。 FM’+ (Bottom-k)算法看不懂,但意思就是维护前k个最小值,完了最终估计k/zk个不一样的数字。 FM++就是利用median技术,运行t次去中位数。 朴实(实用?)FM算法,它的直观思想(我认为)是先假设hash后均匀分布,012345678.然后根据二进制0的个数的最大值z,来估计不重复元素数目。最后输出的是2z+1/2.但是注意其中的hash函数.然后可以还用Median技术来降低方差。