一读小说 » 玄幻奇幻 » 脑回路清奇的主角们 » 幻数据压缩算法2

幻数据压缩算法2

    =数据压缩算法=统计算法=

    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种标尺:????

    完全单比特一致:(*,*,*……)

    完全双比特一致:(*,*,*……)

    完全多比特一致:(*,*,*……)

    完全单比特求反:(*,*,*……)

    完全双比特求反:(*,*,*……)

    完全多比特求反:(*,*,*……)