追书网 > 女频频道 > 脑回路清奇的主角们 > 第508章 幻如何让硬件处变不惊?

=光化学存储器猜想=

        如何用光实现存储?作者猜想到,有以下多种方法:

        1:设计两个平行的单面反光镜,两者之间的距离足够远,至少1千米,然后在一个平面镜被抽出,然后存入被编码成摩尔电码一样的光照射,然后把平面镜放回去,然后让光在两个平面镜之间来回,到需要读取时,再把平面镜抽出,光就被受光器接收。

        2:设计被特定频率光照射就会改变化学性质的光化学固体或光化学流体,比如受到紫外线照射就会变成固态,受到红外线照射就会变成液态;又比如受到特定频率光照射,就变成正四面体方式结晶,而受到另一种频率光照射,就变成正六面体方式结晶,比如用特定频率光A照射,就成为酒精,用特定频率光B照射,就成为二氧化碳,使用特定频率光C照射,就成为环氧。

        3:设计成正六面体方式,有两个照射面,一个面是写入面又称编程面,一个面是读取面又称反馈面,用特定频率的光,可以在写入面改变化学成分,从而改变折射率,用折射率定义二进制的0和1,属于偏结晶,只有在特定写入面才能改变其化学成分,而不是写入面,就只能让光受到折射率作用,还有一个面能够用来干嘛呢?

        4:可以把数据转换为一个特定结构的透镜,自带原点,然后用特定数据(文件系统原始数据)来定义照射方式,从而把每一个球半径方向的折射率不同换算成数据,从而能够把1ZB数据刻录在不到1立方厘米的被三维打印的特殊透镜中,其本身可以作为密钥,也可以作为运算逻辑器。

        =数据压缩算法猜想=

        对折算法,例如10100101(偶数位)和101010101(奇数位)。

        做三种算法,分别是加法,乘法和乘方法。

        0+0=0,0+1=1+0=1,1+1=10(二进制的2)

        0*0=0,0*1=1*0=0,1*1=1

        0^0=1,0^1=1^0=1,1^1=1

        也就是结果=001,则表示两个都是0,结果等于101,则表示一个等于0,一个等于1,结果等于1011,则两个都是1

        以上算法另有用途。

        还有一种表达方式,把数据中分(如果奇数位,则先把中间位去掉作为原点,如果偶数位,直接中分)

        比如10100101,可以记录为1010取对称(完全镜面对称)

        比如101010101,可以记录为原点为1,1010取对称(完全镜面对称)

        比如10101010,可以记录为1010循环,也可以记录为1010和正负取逆反(原点左边第一个和原点右边的一个互异,原点左边第N个和原点右边的第N个互异)

        只需要记录一半的数据作为数据卡尺,当然了,也可以只是用整体的N分之一作为全记录数据卡尺,其他的就看特定位是互同还是互异,只是需要记录数据对齐方法,比如可以使用1KB数据作为数据卡尺,然后进行比对。

        这种算法最怕有数据缺失,也就是不管是数据卡尺出问题,还是记录互异和互同的部分出问题,都会导致数据不可用,只能进行试错逆推。

        对于数据压缩,这是缺点,然而对于作为一种密文防止篡改的技术,这是优点。

        任意数,都可以变成算术:

        7?6?5?4?3?2?1?1?2?3?4?5?6?7

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

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

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

        比如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;

        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出现过多少次;

        以此类推,就能大量减少排列组合次数。

        比如10254个二进制比特,其中二进制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,就浪费了。

        想想看,素数和无理数,在数据压缩中,还能有什么用法?

        如果位移是一种运算方式,那么能不能设计一种专门只运算位移的算法,来进行单一算法超高频率应用?就如同精简指令集打败完整指令集一样,钻牛角尖如果能够钻出个所以然来,又有何不可呢?

(https://www.biquya.net/id97270/49773987.html)


1秒记住追书网网:www.biquya.net。手机版阅读网址:m.biquya.net