然而,随着进制越来越大,不是每一个数都出现过(比如十进制499979中,可能所有位都只出现过5000个数,那么数数就完全不对称了)(结论:进制越大,同一个数换算后的数位越短,进制越小,同一个数换算后的数位越长)
=超级电脑的数据卡尺=
第一种数据卡尺:取素数次方根和有限的小数点后100位数
获得一个数,直接把该数进行取N次方根。
比如499979,取平方根的整数部分就是707,取立方根的整数部分就是79。
一般而言,为了尽可能减少计算量,一般取二次方根都保留小数点后10位数,取三次方根都保留小数点后20位数,取五次方根都保留小数点后30位数(最高取小数点后100位数)。
想象一下1ZB二进制长度的数,取其499979次方根,会等于多少,会不会大于1GB?
第二种数据卡尺:取任意正整数阶乘去无限接近该数值。
一般的方法,就是A!+B!+C!……,然后A大于B大于C
第三种数据卡尺:把数据分段落换算
比如换算成7进制,然后填写到7乘以7乘以7的数据方格阵列中,每一位占用一个方格,然后先统计填满了多少个数据方格,然后把没填满的数据方格记录下来(一般分为对齐最高位的填充方格位置和对齐最低位的填充方格位置),然后把每一个方格进行统计,比如对齐最高位的填充方格阵列的第20个中,出现了40个1,20个2,10个3,273个0
比如换算成499979进制,然后填写到499979乘以499979乘以499979的数据方格阵列中,每一位占用一个方格,然后进行统计。
这套算法的优势:分段落,不需要在1ZB数据中进行排列组合运算,而只需要在1GB,1MB,1KB数据中进行排列组合运算。
当然了,使用多少位进制,都可以记录为数据,使用什么样的数据方格阵列,也可以自定义。
进制碰撞,校验码碰撞,很快就能确认是不是解压缩出来了源文件。
第四种数据卡尺:校验码碰撞,没的说,使用1GB校验所有哈希值,比如MD5,比如SHA256。
为你提供最快的脑回路清奇的主角们更新,幻如果进制就那个碰撞免费阅读。