而快速减少大量数据逆推的方法,就是之前所说的素数进制碰撞方法,数所有位在特定进制时出现特定数多少次,然后进行顺序排列就能还原出源数据。
而这种压缩方式和解压缩方式,可以研究出专用的运算内核,从而做成压缩卡和解压缩卡,如同显卡和网卡一样。
示例: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,就浪费了。
想想看,素数和无理数,在数据压缩中,还能有什么用法?
如果位移是一种运算方式,那么能不能设计一种专门只运算位移的算法,来进行单一算法超高频率应用?就如同精简指令集打败完整指令集一样,钻牛角尖如果能够钻出个所以然来,又有何不可呢?
本章阅读结束,请阅读下一章
手机阅读:http://m.77kshu.cc/205583/
发表书评:http://www.77kshu.cc/book/205583.html
为了方便下次阅读,你可以在顶部"加入书签"记录本次(第508章 幻如何让硬件处变不惊?)的阅读记录,下次打开书架即可看到!请向你的朋友(QQ、博客、微信等方式)推荐本书,纯白色科幻宅谢谢您的支持!!