数据长度相对多的算法:正整数=A;可以取两个乘方来接近(一个略大于,一个略小于)
B^C(加上或减去)D*E(加上或减去)F=A;B^C大于A。
G^H(加上或减去)I*J(加上或减去)K=A;G^H小于A。
逆运算就不解释了,数学问题。
这就需要使用人工智能,来逆推一个足够大的数,如何用最少的数和最少的运算,来记录,然后能够通过这些运算式快速的解压出源数据。
而快速减少大量数据逆推的方法,就是之前所说的素数进制碰撞方法,数所有位在特定进制时出现特定数多少次,然后进行顺序排列就能还原出源数据。
而这种压缩方式和解压缩方式,可以研究出专用的运算内核,从而做成压缩卡和解压缩卡,如同显卡和网卡一样。
示例:1位二进制0和2位二进制1,有多少种排列组合?
011;101;110;三种。
0011;0101;1001;1010;1100;五种。
0111;1011;1101;1110;四种。
00011;00101;01001;;;;;七种。
00111;01011;;;;;;
5位二进制0和3位二进制1,有多少种排列组合?16种。
偶数为0出现过多少次;偶数为1出现过多少次;
3的倍数为0出现过多少次;3的倍数+1为0出现过多少次;3的倍数+2为0出现过多少次;
N的倍数为0出现过多少次;N的倍数+1为0出现过多少次;N的倍数+2为0出现过多少次;……一直到N的倍数+(N-1)为0出现过多少次;
以此类推,就能大量减少排列组合次数。
比如个二进制比特,其中二进制1出现过5332次,其中二进制0出现过4922次
不换算时(二进制统计时)
奇数位的0出现过3791次;奇数位的1出现过2999次;
偶数位的0出现过1131次;偶数位的1出现过2333次;
5332-2333 = 2999
4922-1131 = 3791
3的倍数位的0出现过多少次;3的倍数位的1出现过多少次;
3的倍数+1位的0出现过多少次;3的倍数+1位的1出现过多少次;
3的倍数+2位的0出现过多少次;3的倍数+2位的1出现过多少次;
再扩展到N的倍数;N的倍数+1;N的倍数+2;……N的倍数+(N-1);其中对应的0和对应的1各出现过多少次;
换算为三进制;
奇数位;偶数位;其中A(三进制中的0)各出现了多少次;其中B(三进制的1)各出现了多少次;其中C(三进制的2)各出现了多少次;
3的倍数位;3的倍数+1位;3的倍数+2位;A,B,C各分别各出现了多少次;
再扩展到N的倍数;N的倍数+1;N的倍数+2;……N的倍数+(N-1);其中对应的A,B,C各分别各出现了过多少次;
这种可以使用简单的单一比特数据互换的快速内存专用运算单片机,就能进行快速穷举,以及进行逻辑碰撞;同样的,N一般都取素数,避免重复碰撞,比如用了2,又用4,用了5,又用10,就浪费了。
想想看,素数和无理数,在数据压缩中,还能有什么用法?