点击蓝色“程序猿DD”关注我
回复“资源”获取独家整理的学习资料!
作者 | 刘大可先生
170元买400元书的机会又来啦!
那么多科普文都在说植物上的黄金分割,尤其比如向日葵的花盘什么的,但这究竟是啥意思呢?
*本文所有Gif图片的原始素材由@pehiztu 计算生成
那么多科普文都在说植物上的黄金分割,尤其比如向日葵的花盘什么的,但这究竟是啥意思呢?我恐怕你看腻了这些例子,都只觉得神秘兮兮的,不知所谓——这篇文章能让你彻底弄明白这个问题。
向日葵花盘是“黄金分割”最常见的例子
这种大戟属的植物,Euphorbia flanaganii,也有这样明显的顶端
首先要知道,“植物身上的黄金分割”说的是什么:
这个“芽”可以是任何芽,比如这里就是叶芽——叶芽会长成叶子,所以这里连接的是叶尖
就如上图这棵龙舌兰所示,植物顶端会不断向周围分生出新的芽,那么找到两个相邻的芽,把它们与植物顶端分别连接起来,就会构成一大一小两个角,那个较小的角θ1总是137.5°左右,较大的角θ2当然就是 360° - 137.5° = 222.5°,那么它俩的比值就刚好是黄金分割,1.618。
黄金分割的根式表达和前几位小数
动态地观察这个生长过程
看起来也没什么了不起嘛,
这两个角的比值难道不能是别的吗?
试试看好了。
Gif,不动就点开
上面这个花盘的两个角比值为0.36,你会发现它与正常的向日葵花盘明显不同:随着顶端分生出越来越多的芽,最早分出的芽就在外围逐渐聚集成了辐射状的队列,而不像正常地向日葵花盘那样均匀分散。
这个现象本身很容易理解:0.36 = 9/25,相邻两个芽的夹角是这个比值,就相当于每隔25个芽转动9个圆周,那么当芽足够多的时候,必然形成25条辐射队列。
上面那个的最后结果,你仔细数数看,真的是25条辐射队列
但这太糟糕了!因为越早分生出去的芽长得越大,也就越需要空间,而它们竟然就这样挤成笔直的辐射队列,那队列与队列之间的广大空间就全都浪费了,特别如果这些芽是叶芽,最后发育成的叶片就会互相遮挡,严重影响光合作用。
那么,让分母大一些,队列多一些,是不是就不会拥挤了呢?下面这个是比值为0.25316 = 6329/25000 的情形,每隔25000个芽才刚好转过6329个圆周,按理说应该很均匀了吧?
相邻芽两夹角比值为0.25316的花盘
根本没有!
辐射队列的确多到看不出来了,但花盘又形成了超显眼的4条螺旋队列,从头到尾都在挥霍宝贵的空间!
稍微想一想,这也是很容易理解的事情——0.25316的分母虽大,整体上却很接近0.25,也就是1/4。所以 0.25316 就可以看作“每隔4个芽旋转1个圆周多一点点”,也就是4条队列扭曲一点点,可不就是4条螺旋队列。
我们不妨更极端一点,再试试无理数——根据定义,无理数不等于任何整数比,也就永远凑不成辐射队列,效果会不会好一些呢?比如圆周率就是一个超级无理数,它不能用任何长度有限的数学式写出来,必须写成无限项的连续计算,那么它的表现就如下图所示:
相邻芽两夹角比值为圆周率的花盘
太叫人失望了!圆周率这么不可一世的数字,在花盘上的表现竟然如此差劲,辐射队列有没有不知道,反正直接刷出来7条刺眼的螺旋队列。
但转念一想,祖冲之早在1500年前就算出了圆周率约等于22/7,出现这局面也就不奇怪了——无论大分母还是无理数,只要整体上近似某个小分母的有理数,都会让植物浪费很多空间。
于是另一个最著名的无理数,传说中引爆了第一次数学危机的√2,以不俗的表现吸引了我们的注意:
相邻芽两夹角比值为√2的花盘
红色点与粉色点在同一个螺旋内,与蓝色点在相邻螺旋内,前两者的距离只稍近一点
我们看到,虽然√2=1.41421…,与17/12=1.41666…这个有理数很接近,导致最后的花盘呈现出12条螺旋,但从整体上看,螺旋中相邻两个芽的距离(红色点与粉色点的距离),与两条相邻螺旋的距离(红色点与蓝色点的距离),差距并不太大,结果就是每个芽与周围其它芽的距离都差不多,空间利用就很合理,那12条螺旋很不明显。
这是因为√2与17/12并没有那样接近,它虽然是每隔12个芽就旋转17个圆周多一点点,但那一点点也不太小,这让每条螺旋中的芽间距变大了,也就让每条螺旋都拉长了,越向着外围缠得越紧,螺旋在外围的间距减小了,这两个效果综合起来,也就产生了上面的不俗表现。
于是我们看到,相邻两个芽的夹角还真不能随便是个什么数,仅仅出于节省空间的压力,就不能近似于任何小分母的有理数。
随便一些夹角比值的糟糕结果,各种缝隙宽,各种浪费空间
那么问题来了:要怎样评价一个数是否拥有更好的“一点点”,判断它是否近似于某个小分母的有理数呢?——我们只有找到这个评判方法,才能理性分析“植物身上的黄金分割”究竟好在哪里。
我们先说方法,再说原理
方法出乎意料的简单:写成连分数之后,大分母越少越靠后的数,越好。
在这里,所谓连分数就是这样形式的分数:
连分数的通式,a0为非负整数,此外的an为正整数
任何实数,无论有理数还是无理数,都能唯一写成一个连分数。其中,从 a1开始的 an,就称为连分数的部分分母,有理数必有有限个部分分母,无理数必有无限个部分分母。
那么不妨把上面举过的几个例子都写成连分数*,用这个方法评判一下吧:
具体怎样把一个数写成连分数,你假装自己天生就会即可
第一个例子是0.36,可见它的连分数分母都很小,它自己就是最接近的小分母有理数,所以最后决定花盘图案的就是这个分数本身,外围25条笔直的辐射队列。
第二个例子是0.25316,第三个部分分母是19——我们知道分母越大分数越小,这就意味着从这一项之后的分数可以忽略不计,所以越是有大分母,且大分母越早出现,连分数就越近似于某个小分母的有理数——0.25316从此截断就是它的近似值,1/4,一个分母极小的有理数,所以表现最糟。
第三个例子是圆周率,它有无穷个部分分母,但第二个就有15那么大,从此截断,就是约率22/7,又一个分母很小的有理数,表现得很差。另外,如果从下面更大的292处截断,就是密率355/113,精确到了小数点后6位。
√2就明显不同了,它所有部分分母都是2,我们即便从第四个2那里处截取了一个近似值,剩下的部分也并没有大分母,不是很小,这使它并不那么接近截得的近似值,因此表现不俗——实际上,1+√2在数学史上就被称为“白银分割”,是均匀程度仅次于黄金分割优雅分割,而对于花盘来说,那个1意味着旋转1个完整圆周,有没有都一样的。
既然如此,我们又为什么要在第4个2上截断取得近似值呢?刚才的0.36为什么不能这样做呢?——这就出于另一种有些“晦涩”的原因了,我将它留在了结尾后的付费部分,在那里讨论“大分母”究竟多大算大——但现在,我们先继续正文:
事到如今,我们已经找到了√2不俗表现的来源,那就可以举一反三,构造最理想的比值了——方法简单得很,让所有的部分分母都是1就好了嘛,这样永远都不出现一个大分母,在任何地方截断,剩下的也绝不会很小。
我们构造出来的最理想的比值
这不就是黄金分割嘛,不就是植物们已经采用的方案了吗!
是的,这就是我们整个故事的第一个核心:
黄金分割是一个不近似任何小分母有理数,甚至不不接近任何有理数的神奇数字。
所以把它放在花盘上,我们就会发现花盘无论长到多么巨大,每个芽都与周围所有的芽大致等距,不浪费一点儿空间——这样的花盘不像前几个案例那样,存在若干条主导的螺旋队列,而是见仁见智,能从不同的方向数出好几种螺旋队列,哪一种都不比别的更加明显,或者在某些局部明显,在另一些局部就不明显。
一个超大的黄金分割花盘,你是不是感觉花盘上充满了各种各样错综复杂的螺旋队列?
而当你认真数一数每种螺旋队列有几条,立刻就会有新的收获了:任何一种螺旋队列的数量,不外乎5、8、13、21、34……一定是斐波那契数列中的某个值。
每种螺旋选一条涂上色,并标注出这样的螺旋有几条
因为斐波那契数列就是黄金分割的连分数依次截断取得的近似值的分母啊!这和之前的所有案例都是一样的,只是黄金分割与其中任何一个近似值都不那么近似,所以最后的花盘上,任何一种数量的螺旋也都不怎么明显,于是出现了所有螺旋并存的局面——不过总得说来,出于人类的视觉偏向,我们总会觉得越向外,螺旋的数量越多。
依次截断黄金分割的连分数,你会发现斐波那契数列
到此为止,我们已经大体结束了方法的讨论,讲述了“黄金分割”这个数字是怎样得来的——但是,我们还有一层窗户纸没有捅破,还有原理没有介绍:连分数有什么了不起的,凭什么要把它的部分分母作为标准,评判一切实数是否近似于小分母有理数呢?我们为什么不直接比较小数精确到了多少位呢?
这个回答就是文章的第二个核心了:
因为连分数没有进位制的偏见,是“最客观”的计数方法。
首先我们从小就知道,小数就是分母为10的分数,0.1就是1/10,0.36就是36/100,那么“精确到小数点后若干位”这种操作的本质就是“用10的若干次幂作为分母求取近似”。
比如“0.33333……精确到小数点后3位是0.333”,就是说“在所有分母为1000的分数中,333/1000最近似0.33333……”。
但是想想看,这件事挺“蠢”的,不就是个1/3吗?竟然搞出了1000和333这样巨大的数字,到头来还只是个近似值——仅仅因为我们固执于10进制,对分母的选择太教条,太僵硬了。
有理数尚且如此,无理数就更严重了——我们说祖冲之的密率精确到了小数点后6位,但要知道,密率的分母是113而已,小数点后6位的分母可是巨达1000000呢!
你看看这差距有多大!
当然,不仅10进制,无论怎样一种进制,“小数点后若干位”都不能保证近似值的质量,也就都不足以预测花盘上最终形成的图案,不能成为我们的“方法”——毕竟花盘上的图案是个客观存在,不受人类的偏好左右。
相比之下,连分数就完美地解决了这个问题:它没有教条地把某个基数的乘幂作为分母,而是因时制宜,不断选择最恰当的正整数作为部分分母——你看到连分数的分子都是1,最小的正整数,那就是最佳的标志。
或者说得直接一点:在任何位置截断连分数取得的分数近似值都是当前最优的,不可能用分母比下一次截断取得的近似值的分母更小的分数取得更好的近似——这有点儿拗口,举个例子就一目了然了。
就拿圆周率来说,在第一个部分分母处截断取得的圆周率约率是22/7,下一次截断就是在第二个部分分母处截断,取得的近似值是333/106,那么,就绝不存在任何分母比106还小的有理数,能比22/7更接近圆周率——想想看,这是程度惊人的近似。
这就更加深刻地解释了为什么向日葵花盘上的螺旋数一定是斐波那契数列中的某个数——因为这些数作为分母,全都对应着某个最优解,其它任何数作为分母都不会比它们更接近黄金分割,所以尽管黄金分割不近似于任何有理数,但非要矬子里面拔高个,还是非这些数莫属。
这也是为什么我们用截断连分数的方法一定能预测花盘上的螺旋数,因为连分数就是求取小分母有理数近似值的最优方案,没有之一,它说一个数近似于哪个有理数,就是真的近似于那个有理数,花盘上的芽就是真的在那些螺旋附近最集中。
另外,如果你真想量化一下连分数“近似”的程度,我们也是有办法的——对截取后的近似值分母平方取倒数,就是这个近似值精度的底限。比如约率的分母是7,那它的精度就不会低于1/49,密率的分母是113,那它的精度就不会低于1/12769。
而黄金分割历次截取的精度就是斐波那契数列平方的倒数,它截取到第5个部分分母,近似值是13/8,精度才达到1/64以上,才超过圆周率第1个部分分母的近似程度——实际上,在任何可能的实数中,黄金分割的连分数的近似值的精度增加就是最慢的,所以这又更明确地展示了黄金分割是多么的不近似于有理数。
这篇文章的两个核心也在这里完全汇聚了——数学的部分也就到此结束了。
不过我们还是有一些来自生物的困惑没有解答:
植物又没有脑子,它们怎么计算发芽的角度,能让花盘长得这样精确?要知道,如果大花盘上能数出144个螺旋,就意味着它的精度已经超过了1/20736!
宝塔西兰花的花序对黄金分割的把握恐怕已经超过了355个螺旋,1/126025以上的精度
回答仍然是惊人的简单:由分生组织对生长素的敏感程度决定。
因为我们在初中就已经学过,植物的生长素,也就是吲哚乙酸,本身由分生组织分泌,并向周围的细胞运输,它在高浓度时会抑制其它细胞的分裂生长,在低浓度时能促进其它细胞分裂生长。
而植物的芽就是分裂最旺盛的组织,会不断释放生长素,那么当一个芽形成以后,下一个芽就不会在距离它很近的地方形成,而必然绕着植物的中轴转过某个角度,在生长素浓度已经降低,效果表现为促进的地方形成,
我按照倒序标出了这棵龙舌兰的叶片的生长顺序
换句话说,植物的芽会在多大浓度的生长激素下形成,就决定了相邻两个芽会转过多大的角度——这可不就是一开头就已经提出的“植物中的黄金分割”说的那个夹角吗?
而这个“多大浓度”的值,就是在进化中产生的,那些浓度偏好恰到好处的植物,在生长中就比较节省空间,也就比较节省资源,就有生存优势,就能多繁殖,就能占据优势——事就这样成了,就这么简单。
不过话又说回来了,植物也并不需要把这个浓度偏好控制得无限精准,一来毕竟是生物,长不出无限精准的结构;二来,只要位置长得差不多,每个芽自己萌发膨胀时也会尽可能地充分占据空间,塞满一切缝隙,进一步逼近理想的黄金分割。
除了向日葵的花盘,景天科植物的叶肉质很多,也是非常需要空间的结构,所以也很美
而且实际上,我们也真的可以找到大量的例外,找到那些没有按照黄金分割生长的植物,毕竟如果没有向日葵花盘那么迫切的需求,浪费空间也并不可耻。
旅人蕉的夹角比值是0.5
青锁龙的夹角比值是0.25
多叶芦荟的夹角比值比0.2的倍数多一点点,5个螺旋
一些文种的茶花,比如十八学士,夹角的比值是1/6
-END-
留言交流不过瘾
关注我,回复“加群”加入各种主题讨论群