看火小说 > 玄幻魔法 > 脑回路清奇的主角们 > 第424章 幻当程序员小白用自然语言编程时会怎样?

第424章 幻当程序员小白用自然语言编程时会怎样?(1 / 1)

=数据卡尺=

如何用统计学的知识,来应用在数据上呢?

-第一步-

要弄明白统计学和数据之间的共性和非共性。

统计学:每一个数据无论其数值是多少,其本身就作为一个数值独占的存在体,然而统计学本身就有意和无意的忽略了各个数值的先后排列。

数据:每一个数据无论其数值是多少,其本身就作为一个数值独占的存在体,然而数据本身很注重各个数值的先后排列。

比如:abracadabra

用统计学来表示,就是a出现了5次,b出现了2次,c出现了1次,d出现了1次,r出现了2次。

用数据来表示,就是abracadabra。

那么如何把数据快速的解压缩出来呢?可以使用分段压缩方式,比如把一个大文件,分割成一个个片段,例如:

abracadabra the fox jump.张三和李四一起去喝酒。

那么,就可以根据前面的数据,本身就是采用英文的方式,也就是最多是52进制(区分大小写),而后面的中文可就麻烦了,毕竟中文本身进制相当大,那么就需要进行大进制处理。

用统计学的方法,就是把数据平均分,然后分割成可以互相对齐的数据个体,然后统计这些数据个体各出现了多少次。

然后进行统计,把统计数据记录下去。

也就是说,把大英百科全书的纯文本内容用统计学的方式记录下来,就能对应到大小写英文字母+符号+空格+换行+换页……

那么就能够统计出各英文字母出现过多少次,这导致的就是数据能够很好把所有元素给还原出来,只是这些元素之间的排列组合,就随着数据长度的变大而趋向更高运算量。

最简单的方法,就是用三种统计方法:

如字母矩阵:

a c a e f h i o p q r t t y t

a s d k f j a s l k f d j l a

s k j f d a s d f s a d f a s

d f a s f a s d f a s f d a s

f d j h l k j h l k j h l k j h

为了快速得知每个数字的排列方式,可以进行统计校验

每一行的第一列中出现a的次数为2次

每一行的第二列中出现a的次数为0次

第一行中出现a的次数为2次

第二行中出现a的次数为3次

a在整个文本中出现过12次

以此类推,就能使用数独的方式,逆推出去掉了很多排列组合的有限数量的排列组合方式,然后这些排列组合就能通过其他校验方式,比如md5,比如sha128和其他校验方式快速找出正确的排列组合。

这种方式,就是使用小公式重复使用的方式,快速生成数据的片段,然后只需要把数据片段进行拼图一样的整理就行了,就能还原出源文件。

之前说的,只应用到阶乘,n次方,无理数,都只适合于超级计算机的压缩方式,而这次介绍的,则是相对来说,更适合个人计算机,以及单片机使用,本身就是以硬件上限有限时,如何获得最高压缩率,以及最快解压缩。

同样的,把数据进行片段化,然后使用特定进制的方式来进行统计,同样可以统计出,然而还有一种特殊的进制转换对齐校验方式。

比如二进制的101010111010110111010001001101110010。

转换为4进制(00=a)(01=b)(10=c)(11=d):cccdccdbdbabadbdac

转换为十进制:46,084,723,570

转换为16进制:a badd 1372

然后进行统计,比如,在4进制中,abcd各出现过多少次;在二进制中0和1各出现过多少次;在十进制中0123456789各出现过多少次;在十六进制中0123456789abcdef各出现过多少次。

当然了,为了进制校验的准确性,一般都是采用素数进制的方式来进行校验(比如2进制,3进制,5进制,7进制,11进制,13进制……以此类推),然后通过进制之间的差异,来统计。

当然了,因为是为了给单片机使用的,所以本身就不会采用过高进制,比如高达亿进制。

也就是把每一个数据片段,都除以各个进制数,然后得出余数。

→喷子兼或破壁人:所以分解质因数都出现了是吧?你还能更敷衍一点么?

→喷子兼或破壁人:直到现在,你都没有给出使用多处理器来进行大数据压缩和解压缩的代码实现,你在这给程序员用自然语言编程呢?

作者现在在自学c++语言,感觉可能用得上。

最新小说: 燃情辣妻携宝归来沈蔓歌叶南弦 遮天之女帝的绊脚石 万古第一杀神苏玄 龙血丹尊叶辰(叶辰沈雁凡) 当霸总一家穿越到古代后庄静初褚南玹 极品龙婿龙辰(龙辰楚婉柔) 无敌古仙医叶飞 五宝爹地甜宠妈陆南烟顾北寒 主角霍海云晴 云晴霍海