追书网 > 女频频道 > 脑回路清奇的主角们 > 第429章 幻如果进制就那个碰撞

=谁是谁,为了谁?=

        1:我不知道你是谁,但我知道你为了谁(为了正义隐姓埋名)。

        2:我不知道你是谁,也不知道你为了谁(藏在黑暗中的人都干了些什么)?

        3:我知道你是谁,也知道你为了谁。

        4:我知道你是谁,不知道你为了谁(知人知面不知心)。

        =单片机级数据卡尺=以下内容如果不带前缀,就都是十进制=

        任意一个二进制数,都可以转化为其他进制(计算机中的二进制数,对于小数点,正负,一切非数值的内容,都是数值化了,对于存储而言,所有都是数据,只有对于运算而言,才有数据和指令的区别)。

        使用素数进制(比如2进制,3进制,5进制,一直到499973进制,499979进制)。

        使用进制碰撞方式来统计比如十进制的999,换算成二进制就是1111100111;换算成三进制就是1101000。

        统计结果:二进制中,1出现了(十进制的8次),0出现了(十进制的2次);三进制中,1出现了(十进制的3次),0出现了(十进制的4次);十进制中,9出现了(十进制的3次)

        二进制位数(十进制的10位),三进制位数(十进制的7位),十进制位数(十进制的3位)

        然后找一个大数比如十进制的499979,换算成二进制就是1111010000100001011;换算成三进制就是221101211202。

        统计结果:二进制中,1出现了(十进制的9次),0出现了(十进制的10次);三进制中,2出现了(十进制的5次),1出现了(十进制的5次),0出现了(十进制的2次);十进制中,9出现了(十进制的4次),7出现了(十进制的1次),4出现了(十进制的1次)。

        二进制位数(十进制的19位),三进制位数(十进制的12位),十进制位数(十进制的6位)

        那么,如果是一个很大的数(比如长度为1GB的二进制数据),就可以转换为499979进制。

        然后统计每一位(无视位的先后和大小)中各个不超过进制的数(比如二进制就是0和1,三进制就是0和1和2,十进制就是0和1和2和3和4和5和6和7和8和9;其他进制以此类推)。

        这套素数进制算法,不仅可以用于压缩和解压缩,还能用于快速校验文件是否被篡改过。

        然而,随着进制越来越大,不是每一个数都出现过(比如十进制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。

        自然语言编程就这样,很容易,很简短,然而如果换算成高级语言,怕是要百万行代码吧?换算成汇编语言,怕事要千万亿行代码吧?之前说过,英文就是52进制(26个英文字母,区分大小写),然而中文就是很高很高的进制。

        写在最后:既然人工智障能够有虚拟机,那么有没有一种可能?创造一个人工智障专用的硬件级虚拟机,然后让人种智障,在虚拟机里面随机变成,比如从最大长度为4KB的程序二进制编程,然后到最大长度为1GB的程序二进制编程,用个位数+1的穷举法来编程,怕不是所有的程序猿都要丢了工作岗位哦。

        有打火机,有核聚变,为何还要去强行追求钻木取火?

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


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