也就是说,一个16位二进制所表达的数,是一个固定数,是大于或等于0,小于2的16次方+1。
就比如说,一个1ZB大小的数据,只要其本身是固定的,那么就注定大于或等于0,然后小于2的多少次方来着???+1。
表达固定的数,并不一定需要使用到很长的长度。
比如2的987654321次方,可以是一个很大的数,其换算成二进制,会占用多大的存储空间?然后是不是可以逆推为算术内容:2的987654321次方?
问题就是,并非所有的数,都是规律数,都可以使用A的B次方+C乘以D+E阶乘方式正好等于该数,也就导致往往只能采取使用比大小的方式,无限近似,大于某个最接近该数的小数,小于某个最接近该数的大数。
比如说,想要记录一个5,那么在只能使用素数的表达方式时,就可以记录为该数大于3,小于7。
使用大于和小于之后,就可以获得一个数据范围,该范围内可能包含有有数的可能性,接下来的方法,就是把这个可能性减少,比如说(3+7)/5=2,则表示这个数正好处于大于和小于的中间值,比如说(3+7)/4=2.5,则表示这个数正好大于大于和小于的中间值;以此类推;
设定一个数为未知数B,A大于B小于C。
那么就可以取近似值(A+B)/C=D
一般情况下,D都是带有小数的,那么把D的小数去掉,那么D的整数部分就可以作为第二轮的最小值,D+1就可以作为第二轮的最大值。
取(A+B)/C=区间值1(也就是C更靠近A,还是更靠近B)。
(A-B)/(B-C)=区间值2
(A+C)/B=区间值3
(B+C)/A=区间值4
还有一种固定数大于小于法,就是A+→B←+C}总长度为多少位,特定数大于某个可以用循环速记法记录的数,小于某个可以用循环速记法记录的数。
然后就是使用特定算法生成一个数,该数大于B,然后使用特定刷房生成一个数,该数小于B。
示例:3*7=21;4*5=20;3*7大于B小于4*5;那么就可以获得该数百分之八十的近似值,然后再使用不断精准的继续用比大小法接近的方式,获得。
比如3.1415926
第一次比大小:4大于圆周率大于3
第二次比大小:3.14小于圆周率小于3.15
第三次比大小:3.141592小于圆周率小于3.141593
比大小之后,就是使用一个算术,来生成更接近的比大小精准度。
比如第一次比大小,大和小之间相差2的16次方,第二次比大小,大和小之间相差2的14次方,第三次比大小,大和小之间相差2的12次方,以此类推,就能快速还原出原始数据。
为你提供最快的脑回路清奇的主角们更新,幻数据压缩算法猜想1免费阅读。