这篇博文由两个问题衍生而来,分别是:“为什么除法比加法困难”、“什么是生命进化的目的”。在阅读其他人的解读时,发现都关联到了一个概念,熵。觉得十分有意思,因此记录一下自己的遐想。
熵(Entropy;Entropie)起初是一个热力学函数,后发展为系统混乱程度的量度,是一个描述系统热力学状态的函数。 —— 百度百科
1、为什么除法比加法困难
先说是不是,再看为什么。
加减乘除四则运算在计算器中的实现原理分别如下:
1)加法:在二进制下,加法器只需要接收两个0或1的输入,就可以通过异或,输出1位结果和1位进位标志。情况就四种:双0则输出0,一0一1则输出1,双1则输出0和进位标志。按计算位数复制这个过程即可。
2)减法:直接算减法是比较抽象的,但科学家们发明了补码机制,将减法变成了加法。因此复杂度和加法一样。
3)乘法:本质上就是多次相加,循环执行几次即可。
4)除法:最直接的比较法,大致原理是:判断被除数是否大于除数,如果大于,则商加1,然后将被除数减去除数。循环这个过程,直至被除数小于除数。这个过程中,多了一个加法和乘法都不存在的比较操作。
这还是只是整数场景下的加减乘除,浮点数场景下的差异会更加明显。
再举个更直观的例子:假设有一筐球共有N个,想要3N个球,那只需要通过称重等形式,再装两筐球,最终把这三筐球堆一块,就得到了3N。反过来,假设有N个球,在不经过任何计算的情况下,怎么分成等量的3筐?最简单的方法是像发牌一样,轮流给三个筐分配球,最终得到结果。
显然,除法要比乘法复杂。
从现实意义上来讲,这是乘法是做的复制操作,而除法进行的是分割。那为什么分割比复制要难呢?可以从信息熵的角度进行解读:
在信息熵的计算公式中,当每一个元素都处于完全随机状态时,出现的概率P均为,此时信息熵总量最大。当分成3个桶时,此时每个元素则是相对有序的,因此信息熵较小。因此,乘法是一个熵增的过程,除法是一个熵减的过程。
根据热力学第二定律,一个孤立系统的熵总是不变或增大的。想要实现熵减,必然需要外部输入额外的能量。而除法这个熵减过程,需要消耗额外的能量,因此会更加困难。
2、什么是生命进化的目的
讨论生命的话题通常比较宏大,这里仅引入一个小分支:生命为什么会不断进化?
从生物学的角度,繁衍后代是生命的一个基本特征。因此有一种观点认为,生命进化的目的是为了更好的繁衍后代,传递自己的遗传信息。但这个观点从某些角度来看,会存在悖论:如果仅仅是为了传递遗传信息,那原核生物的无丝分裂,才是最高效的。几十分钟分裂一次,几小时就能产生数百万个后代。尽管成活率很低,但架不住量大。部分细菌的历史可以追溯到几十亿年前,而被称为地球霸主的恐龙,大抵也就存活了2亿年就灭绝了。几乎可以预想到,人类的存活时间会更短。
因此,如果繁衍后代是生命的目标,那咱们就应该停止进化,回归最原始的繁衍方式,才能最大限度的维持遗传信息的传递。
那从信息熵的角度来看待这个问题呢?我们从无序的单细胞,进化到由几万亿个细胞构成的复杂生命体,各个细胞之间各司其职相互协作,是一个典型的从无序到有序的过程。也就是说,生命进化本质上是在追求熵减。
根据热力学第二定律,在宇宙尺度上,一定是熵增的。但生物作为一个独立个体,会呈现出局部熵减的情况。从全局视角上看,局部熵减会通过能量交换,加速全局的熵增;从个体视角上看,自身熵减可以将外部的能量占位己有,维持自身的稳定性。因此,不论从全局发展的必然规律,还是自身发展的自私性,追求局部熵减都是一个有意义的过程。
生命的进化大抵就是全局熵增、局部熵减的具象化体现之一。
3、从熵增熵减看待人生百相
上述两个讨论,能够得出两个论点:1)熵减是需要消耗额外能量的,因此会感到困难;2)生命是一个持续追求熵减的过程。
基于这两个论点出发,再来看人生的很多事情,会有意思很多。例如:
- 躺平是熵增的,因为不需要付出额外的努力。但也意味着躺平并不符合生命发展的整体规律。
- 内卷是熵增的,因为没有引入外部的能量,仅仅是内部系统的做功。同样不符合社会发展的整体规律。
- 学习是熵减的,因为做了额外的功,引入了外部的知识。
再具体到一些细小的事情上。例如:
- 增加一个功能是熵增的,对代码做重构是熵减的,因此重构的难度会更大一些。
- 保持锻炼是熵减的,在对抗人体自身的持续熵增,因此会付出额外的精力。
- ……
在转化成熵的视角后,似乎得到了一种量化收益的方法,十分有趣。