第508章 幻如何让硬件处变不惊?-《脑回路清奇的主角们》


    第(2/3)页

    先从最大数到最小数,然后从最小数到最大数。

    而每一个?都可以是加法,减法,乘法,次方,这套算法对于长度不大的数据,可能压缩后长度比原数据还大,然而如果是使用很长的数呢?

    其中的数如果相差不大,还能记录为:

    比如9876543210123456789到9876543210123456777,那么就可以节省掉记录每一个运算符号之间的数,直接记录运算符号就可以了,一般情况下,都是00=+加法;01=-减法;10=*乘法;11=^乘方

    记录了运算符号还不算,每一个运算符号都有独特的运算优先级,就如同把小括号改造成了运算优先级,在这种运算优先级中,所有符号都是同等优先级,只有被定义为更高的运算优先级,才具备更高的运算优先级。

    当然了,可以把所有数都减去同一个数,然后只记录减去该数之后的差来代表该数,从而节约存储长度,比如上面的9876543210123456777-9876543210123456777=0,可以记录为0;9876543210123456789-9876543210123456777=12,可以记录为12;

    所有的正整数,都可以换算成该数除以一个恰当的素数得到的商可以表示为两个数相乘再加上或减去某个数;

    而当这些数并非连续,而且本身也不是很大,那么就可以使用带有运算符号的方式,来用算法表示该大数据,使用有理数算法时,数据的最终结果就是源数据,使用无理数算法时,数据只出现在有限长度之内,然后再对这些截取的无理数特定长度的内容,再对其中的很多位进行微调,从而还原出源数据。

    数据长度很小的算法:正整数=a;素数=b;商=c;余数=d*e+f或d*e-f

    逆运算就是c*b+(d*e+f或d*e-f)

    数据长度相对多的算法:正整数=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;10001;10010;10100;11000;七种。

    00111;01011;10011;10101;11001;11010;11100;
    第(2/3)页