=数据压缩算法=统计算法=
001100;001110;110001;110011;
把数据按照顺序对齐:
001100;001110;110001;110011;
把数据按照大小对齐:
110011;110001;001110;001100;
把数据按照近似对齐:
110011和001100互为求反;110001和001110互为求反;
每一段数据,都有多个标签,通过添加标签的方式,从而减少数据穷举试错的次数。
=有限进制速记算法=
把任何数都可以记录为a^b*c!+d;a的b次方乘以c的阶乘加d;
如43的37次方乘以31的阶乘加499739
43^37*31!+499739
43^37=2.7436762028363398179986072951166e+60
31!=8.22283865417792281772556288e+33
43^37*31!=2.2560806735230762092253487562356e+94
=跳数统计速记算法=
如101001000100001000001000000100000001
123456789012345678901234567890123456→作者避免自己看看得眼睛疼,所以使用数字在特定字体下宽度和高度是一样的方式,来进行作为标尺,数间隔多少位用的。
使用跳一位1的方式统计,结果如下:
奇数次1生效:偶数次1被当做0:1(中间有4个0,其中出现过一次1)1(中间有8个0,其中出现过一次1)1(中间有12个0,其中出现过一次1)+尾数00000001
偶数次1生效:头数10+1(中间有6个0,其中出现过一次1)1(中间有10个0,其中出现过一次1)1(中间有14个0,其中出现过一次1)
然后把这些数据比对合并,就能得出源数据。
使用跳两位1的方式统计,结果如下:
第一个1对齐:1(中间有8个0,其中出现过两次1)1(中间有17个0,其中出现过两次1)1+尾数00000001
第二个1对齐:头数10+1(中间有11个0,其中出现过两次1)1(中间有20个0,其中出现过两次1)1
第三个1对齐:头数10100+1(中间有11个0,其中出现过两次1)1(中间有14个0,其中出现过两次1)1+尾数000000100000001
也就是说,当1和0不连续的情况出现得越多,那么使用跳n个1(以及另一个注册表中跳n个0)的统计数据,n的取值越大,压缩比例越高;当1和0不连续的情况出现得越少,那么使用跳n个1(以及另一个注册表中跳n个0)的统计数据,n的取值越小(不排除n=0的情况),压缩比例越高;
=数据对齐算法=
如:
101001000100001000001000000100000001
101010101010101010101010101010101010
100110011001100110011001100110011001
123456789012345678901234567890123456
第一种标尺:10循环充满
完全一致:(1,2,3,4,8,12,14,15,16,18,20,21,22,24,26,30,32,34)
完全单比特求反:(5,6,7,9,10,11,13,17,19,23,25,27,28,29,31,33)
第二种标尺:1001循环充满
完全一致:(1,2,7,11,14,18,19,21,22,23,26,27,28,30,31,34,35,36)
完全单比特求反:(3,4,5,6,8,9,10,12,13,15,16,17,20,24,25,29,32,33)
第n种标尺:????
完全单比特一致:(*,*,*……)
完全双比特一致:(*,*,*……)
完全多比特一致:(*,*,*……)
完全单比特求反:(*,*,*……)
完全双比特求反:(*,*,*……)
完全多比特求反:(*,*,*……)
使用的算法越多,那么算法所生成的数据就越多,相应的就可以快速互相校验,从而避免1个比特的篡改导致最终损失1zb其中的900tb数据的极端压缩文件异常灾难;毕竟压缩率越高,就意味着一旦出现了压缩文件缺失以及特定数据不可读取(比如硬件损坏,磁盘坏道,软件权限不足)就会导致最终解压缩所缺失的部分越多;压缩率越高,就要求容错能力和纠错能力越强,比如说,把1zb的数据,压缩成1gb数据,1gb数据中随机有百分之五十的数据不可读取,是否能够通过剩下的百分之五十数据逆推出整个1gb数据内容?从而可以解压缩成原先的压缩前的1zb数据(当然了,容错和纠错就难免会增加试错和穷举的运算量)。
001100;001110;110001;110011;
把数据按照顺序对齐:
001100;001110;110001;110011;
把数据按照大小对齐:
110011;110001;001110;001100;
把数据按照近似对齐:
110011和001100互为求反;110001和001110互为求反;
每一段数据,都有多个标签,通过添加标签的方式,从而减少数据穷举试错的次数。
=有限进制速记算法=
把任何数都可以记录为a^b*c!+d;a的b次方乘以c的阶乘加d;
如43的37次方乘以31的阶乘加499739
43^37*31!+499739
43^37=2.7436762028363398179986072951166e+60
31!=8.22283865417792281772556288e+33
43^37*31!=2.2560806735230762092253487562356e+94
=跳数统计速记算法=
如101001000100001000001000000100000001
123456789012345678901234567890123456→作者避免自己看看得眼睛疼,所以使用数字在特定字体下宽度和高度是一样的方式,来进行作为标尺,数间隔多少位用的。
使用跳一位1的方式统计,结果如下:
奇数次1生效:偶数次1被当做0:1(中间有4个0,其中出现过一次1)1(中间有8个0,其中出现过一次1)1(中间有12个0,其中出现过一次1)+尾数00000001
偶数次1生效:头数10+1(中间有6个0,其中出现过一次1)1(中间有10个0,其中出现过一次1)1(中间有14个0,其中出现过一次1)
然后把这些数据比对合并,就能得出源数据。
使用跳两位1的方式统计,结果如下:
第一个1对齐:1(中间有8个0,其中出现过两次1)1(中间有17个0,其中出现过两次1)1+尾数00000001
第二个1对齐:头数10+1(中间有11个0,其中出现过两次1)1(中间有20个0,其中出现过两次1)1
第三个1对齐:头数10100+1(中间有11个0,其中出现过两次1)1(中间有14个0,其中出现过两次1)1+尾数000000100000001
也就是说,当1和0不连续的情况出现得越多,那么使用跳n个1(以及另一个注册表中跳n个0)的统计数据,n的取值越大,压缩比例越高;当1和0不连续的情况出现得越少,那么使用跳n个1(以及另一个注册表中跳n个0)的统计数据,n的取值越小(不排除n=0的情况),压缩比例越高;
=数据对齐算法=
如:
101001000100001000001000000100000001
101010101010101010101010101010101010
100110011001100110011001100110011001
123456789012345678901234567890123456
第一种标尺:10循环充满
完全一致:(1,2,3,4,8,12,14,15,16,18,20,21,22,24,26,30,32,34)
完全单比特求反:(5,6,7,9,10,11,13,17,19,23,25,27,28,29,31,33)
第二种标尺:1001循环充满
完全一致:(1,2,7,11,14,18,19,21,22,23,26,27,28,30,31,34,35,36)
完全单比特求反:(3,4,5,6,8,9,10,12,13,15,16,17,20,24,25,29,32,33)
第n种标尺:????
完全单比特一致:(*,*,*……)
完全双比特一致:(*,*,*……)
完全多比特一致:(*,*,*……)
完全单比特求反:(*,*,*……)
完全双比特求反:(*,*,*……)
完全多比特求反:(*,*,*……)
使用的算法越多,那么算法所生成的数据就越多,相应的就可以快速互相校验,从而避免1个比特的篡改导致最终损失1zb其中的900tb数据的极端压缩文件异常灾难;毕竟压缩率越高,就意味着一旦出现了压缩文件缺失以及特定数据不可读取(比如硬件损坏,磁盘坏道,软件权限不足)就会导致最终解压缩所缺失的部分越多;压缩率越高,就要求容错能力和纠错能力越强,比如说,把1zb的数据,压缩成1gb数据,1gb数据中随机有百分之五十的数据不可读取,是否能够通过剩下的百分之五十数据逆推出整个1gb数据内容?从而可以解压缩成原先的压缩前的1zb数据(当然了,容错和纠错就难免会增加试错和穷举的运算量)。