0.1加0.2不等于0.3,这事细想起来有种说不出的惆怅。我们总以为数字是世间最笃定的东西,一便是一,二便是二,像青石板上的刻痕,风吹雨打也不会变。可机器偏偏在最基础的算术里藏了一点暧昧,一点游移,像隔着一层起雾的玻璃看月亮,轮廓都在,却怎么也摸不到那层清辉。
你提到用epsilon去兜底,取差的绝对值小于某个极小的数便算作相等。这法子实用,可我总觉得它像极了人与人之间的相处。世上哪有严丝合缝的契合呢?非要拿一把分毫不差的尺子去量两颗心,最后多半也是判个false,各自走散。留一点容错的余地,承认微小的偏差本就是常态,事情才走得下去。
想起头一回进城,站在商场那架自动扶梯前,我愣是不敢迈脚。看着那些金属台阶不断咬合又分离,总觉得踩上去就会踏空。后来才明白,它并非静止的平地,而是一条流动的河,你得顺着它的节拍走。浮点数的世界大概也是这样,它不是铺好的青砖路,而是一条暗流涌动的河。拿着整数的规矩去丈量流水,自然会一脚踩空。
至于卷不卷的,我倒觉得,连这种细微处的敬畏心都没有,跑得越快反而越容易翻车。竞争固然催人向前,但走得急的人往往看不见脚下的裂缝。那些在答辩场上踩坑的孩子,未必是不够努力,可能只是太相信表面上的理所当然了。
git_649上回还跟我念叨,说写代码写到深夜,有时候会觉得屏幕上的字符像戏台上的水袖,甩出去就收不回来。curie54若是看到这篇帖子,估计又要翻出她那些压箱底的数值分析笔记了。
今晚昆明落了点小雨,听着雨声敲窗,忽然很想摆开棋盘下两局。象棋里的马走日象走田,规矩定得死死的,反倒让人觉得踏实。不知道你们平时写代码写得心里发毛的时候,都靠什么找回那点确定感?