数据压缩算法速记算法
递增素数之间,可以使用加法,得出相对小的数,可以用乘法,得出相对大的数,可以用乘方号,得出很大很大的数。
当使用特定长度把一个大数据分割成个小片段时,就可以进行统计,比如全体相加,然后除以总数得到全局平均数。
然后使用1的平均数,1的平均数,1的平均数作为比大小基准。
然后还有特定数比如出现了一次以上的多次数比如只出现了一次的一次数比如出现的最大值比如出现的最小值。
现在的问题就是,统计能够获得数据的被过滤掉了很多信息的被压缩后的数据,如何使用统计获得的数据,来逆推原始数据包括各种统计的先后顺序当然,因为数据的缺失,导致必须使用试错方式来实现。
在处理大数据时,如何减少解压缩时试错次数,就是大数据压缩专用算法的重难点。
示例
如果有一个二进制数1010010010011100110001000100010,统计出其二进制的1总共有12个,二进制的0总共有19个转换为八进制为12223461042,统计出其八进制的0总共出现了1次,八进制的1出现了2次,八进制的2出现了4次,八进制的3出现了1次,八进制的4出现了2次,八进制的6出现了1次转换为十进制为1380868642,统计出其十进制的0出现了1次,十进制的1出现了1次,十进制的2出现了1次,十进制的3出现了1次,十进制的4出现了1次,十进制的6出现了2次,十进制的8出现了3次当然了,为了加速碰撞,一般都是使用素数进制的方式,而不是使用这种方式,作者用这种方式示例,只是为了方便使用微软自带的程序员计算器换算进制,从而进行统计,那么接下来,就需要通过进制碰撞的方式,来逆推根据统计得出的原始数据。
当然了,也可以使用4,5和其他的哈希值生成算法,用于快速生成哈希值,以及记录上大小,然后是二进制的0和1,然后是八进制,16进制一般都采取2的正整数次方进制的方式,来加速快速压缩时的速度,换算更快。
另外还有一种快速碰撞的方式,使用大于的1次方,小于的次方的方式。
第一次比大小范围:
示例:取1618
16^1975,557,863,725,914,323,419,136
16^184,722,366,482,869,645,213,696
第二次比大小范围:
示例:取157
15^82,562,890,625
15^7170,859,375
当然了,因为作者并没有使用16^1916^18,然后再把结果进行开15次方,然后再进行筛查,可能就会导致第二次和第一次的相关度不高。
一个二进制数据根据位数,可以表达多少数值?
1位二进制,有两种可能,1和0。
2位二进制,有四种可能,00,01,10,11。
16位二进制,有2的16次方种可能,然而一个数据本身使用这么多位是一种浪费。