生物进化中的数学

为质数而生的蝉

有些蝉会展现出令人吃惊的特性:它们集体探出土壤的时间通常都跟 13 和 17 这样的质数年同步,此时大概会有150 万只以上的成蝉在短时间内同时出现在一英亩的土地上。

蝉是在大约180 万年前、当覆盖北美大陆的冰河消退后,于更新世时期,演化而成的有翅昆虫。其中有一种叫作周期蝉(Magicicada) 的品种,会在地下度过生命中绝大多数的时间,靠吸吮树根的汁液为生,随后会以很快的速度经历成长、交配及死亡的过程。这种生物有一种令人吃惊的特性,它们变成成虫的时间,通常会和13 或17 这样的质数年份同步(质数就是11、13 或 17 这类只能被 1 和其本身两个数字整除的整数)。当在地下度过13 或17 年后,这些对时间周期有感应的周期蝉,会在那年春天一起挖掘一条通往地面的通道,此时一英亩的面积里大概会有150 万只以上的成蝉。这些周期蝉就是采取以量制胜的方式,面对鸟类这样的掠食天敌,只要鸟类没办法把它们一次全部吃光,剩下的周期蝉就能存活下去。

有些学者推测这种对应质数的生命周期,是为了避免被寿命较短的掠食者及寄生虫吞噬、增加成蝉存活率的演化成果,就好比以 12 年的生命周期为例,则所有寿命介于 2、3、4、6 年的掠食者都能更轻易地把蝉吞进五脏庙里。德国多特蒙德马克斯普朗克研究所分子生理学家马库斯(Mario Markus) 及其研究团队,发现这种质数化的生命周期,可以从掠食者与猎物间互动演化的数学模型中自然而然地得到解释;他们先随机设定生命周期年份不等的成蝉构成母体,经过计算机仿真一段时间的演变后,几乎所有实验结果,都会导出这种稳定质数化生命周期的现象。

这个研究还处于初步发展阶段,当然还有很多可被质疑之处,比如,为什么恰好是13 和17 这两个质数?到底又是哪些掠食者跟寄生虫促成蝉演化出这样的生命周期?而另外一个仍旧无解的谜题则是—在全球1 500 多种分类中,为什么只有周期蝉这样少数的品种,才具备质数化生命周期的特性?

蚂蚁的里程表


撒哈拉沙漠蚁似乎随身携带“计步器”用以测量精确距离。被黏上支架的蚂蚁(如图中红色部分)会爬太远以致过家门而不入,这表明蚂蚁步伐宽度是测定距离的关键因素。

蚂蚁是白垩纪中叶——距今约1.5 亿年前—由胡蚂蜂演化而成的社会性昆虫,直到距今大约1 亿年前,开花植物大量繁衍之后,蚂蚁才开始演变成各式各样不同的种类。

撒哈拉沙漠蚁( 长脚沙漠蚂蚁) 经常长途跋涉在广袤、没有地标指引的沙漠地带里寻找食物,但这些蚂蚁却能够采取直线前进的方式回到巢穴,而不是一步步回溯离开巢穴的路径。它们不仅会利用晴空的阳光判断巢穴方位,它们甚至看似随身携带内嵌式“计步器”用以测量精确距离。

一只蚂蚁最远可以离巢漫游约 50 米,直到发现其他昆虫尸体为止,随后它会肢解食物并直线回到入口直径通常小于1 厘米的巢穴中。

一组由德国及瑞士人组成的研究团队由调整蚂蚁脚的长度,让它们步伐变长或变短,进而发现这些蚂蚁透过“计算”步数的方式判断距离。当蚂蚁抵达食物所在地时,研究人员替一部分蚂蚁加装支架让脚变长,并把另一部分蚂蚁的脚截去一小段,随后就让这些蚂蚁开始回程,结果加装支架的蚂蚁会走过头,被轻微截肢的蚂蚁则还要再多走几步才会抵达洞口。另一方面,如果让这些被加工过的蚂蚁重新从蚂蚁窝外出找寻食物的话,它们又通通能够测量出正确的距离,显示出步伐长短所扮演的关键因素。除此之外,蚂蚁脑海中高度精密的计算机,显然可以把它漫游的路径进行水平(量化)投影,所以,就算沙漠的地貌在旅程中变成一座小山丘或是洼谷时,也不会让蚂蚁们找不到回家的路。

灵长类算数


灵长类动物似乎具备一定程度的数字概念,较高等灵长类可以学会在看到屏幕上出现数量不等的物品时,输入相对应的正确数字,进而认识1—6 这几个数字

距今约6 000 万年前,一种小型、长得像狐猴的灵长类动物开始在世界各地繁衍,演化到距今约3 000 万年前,则开始有了类似猿猴的特征。这种生物会算数吗?虽然对于动物行为科学家而言,该如何判定动物会算数,是个高度争议的课题,但仍有许多专家学者同意动物的确带有一些数字概念,譬如卡穆斯(H. Kalmus)就在《自然》期刊上,发表一篇名为《动物也懂数学》(Animals as Mathematicians )的文章,上面写着:经过训练,松鼠、鹦鹉之类的动物可以学会算数,这一点至今已经较无争议了,……很多报告显示包括松鼠、老鼠以及能协助传授花粉的昆虫,都具备算数能力。在这些动物当中,有些可以区别数字或是以图案示意的类似模式,有些可以经由训练分辨数字或是复诵出相同的数列,甚至有些动物可以经由训练敲打出以图案符号(以小圆点表示)所表示的数字……,就因为它们既无法说出,也无法用书写方式表示数字,所以,还有很多人不愿意承认动物也懂数学。

老鼠通过正确辨识数字以交换奖品,展现它的“算数能力”,黑猩猩可以根据箱子内的香蕉数量,在计算机上输入相对应的正确数字。日本京都大学灵长类研究中心的松泽哲郎(Tetsuro Matsuzawa),就是借教导黑猩猩根据屏幕上的物品数量,输入相对应正确数字的做法,让它们学会认识1—6 这几个数字。

另一位美国亚特兰大乔治亚州立大学的研究人员巴伦(Michael Beran),则是教导黑猩猩使用计算机跟游戏杆。它们会先在屏幕上看到一个数字跟几张圆点图,接着会要求它们挑出与数字相对应的圆点图,有一只黑猩猩可以认得1—7 这几个数字,另一只则可以从1 算到6。时隔三年后,再让这两只黑猩猩受测时,它们都还是一样具有算数能力,只不过犯错的概率也多了一倍。

原文发布时间为:2015-12-06

时间: 2024-10-02 15:29:30

生物进化中的数学的相关文章

bash shell中的数学计算

简介 在写shell脚本的时候会用到很多的数学运算,简单的一个游标+1 -1, 或者更多一点的浮点运算等,shell中数学计算稍麻烦,我想每个人都试过var=1+1 或者var=$xxx+1这类错误. 下面对shell中做数学计算小做总结 示例   使用expr整数运算 > var=1 > var=`expr $var + 1` > echo $var 2 其他的减乘除类似, 要注意乘法中的*号需要做转义\*即可 使用bash内建命令let > var=2 > let &qu

如何在软件中实现数学符号的输入与显示?

问题描述 如何在软件中实现数学符号的输入与显示? 我的同学想做一个基于android平台的数学学习软件,其中涉及到数学符号的输入与显示问题,但是一些特殊的公式和符号不知道如何输入?希望知道的人指点一下. 解决方案 用图片代替,显示时需要做特殊的处理了.记得以前做英文词典时,所有音标都是这样处理的. 解决方案二: 一部分的符号在字库中有,在windows附件的"字符映射表"中可以找到并且粘贴出来如果要再复杂,需要定义一种表达公式的语言.比如你可以借鉴LaTeX http://baike.

《R的极客理想——高级开发篇 A》一一1.2 R语言中的数学计算

1.2 R语言中的数学计算 问题 如何用R语言进行数学计算? 引言 R语言是统计语言,生来就对数学有良好的支持,用R语言做数学的计算题特别方便.如果计算器中能嵌入R语言的计算函数,那么绝对是一种高科技产品.我真的把R语言当成我的计算器了!1.2.1 基本计算 R语言对数学计算有着非常好的支持,本节将完整介绍初等数学中的各种计算操作. 本节的系统环境是: Windows 7 64bit R: 3.1.1 x86_64-w64-mingw32/x64 (64-bit) 用R语言实现四则运算操作,包括

OpenCASCADE中的数学图元及其算法

Math Primitives and Algorithms 数学图元及其算法 eryar@163.com 一.概述 Overview Open CASCADE中的数学图元及其算法包括以下内容: l 向量和矩阵(Vectors and matrices): l 几何图元(Geometric primitives): l 数学算法(Math algorithms): 二.向量和矩阵 Vectors and Matrices 向量和矩阵部分提供了基本类型的矩阵和向量的C++实现,也可用来定义更复杂的

Javascript中的数学函数集合_基础知识

在Javascript中,数学方法可以分成以下几类: constans(常数).power functions(乘方函数).trigonometic functions(三角函数).rounding functions(舍入函数).random numbers(随机数字) 引用 常数和乘方函数 Math.E  自然对数的底(为常数)  2.718   Math.LN10  10的自然对数  2.302   Math.LN2  2的自然对数  0.693   Math.PI  圆周率  3.141

Javascript中的数学函数_基础知识

在Javascript中,数学方法可以分成以下几类:constans(常数).power functions(乘方函数).trigonometic functions(三角函数).rounding functions(舍入函数).random numbers(随机数字) 常数和乘方函数 Math.E 自然对数的底(为常数) 2.718 Math.LN10 10的自然对数 2.302 Math.LN2 2的自然对数 0.693 Math.PI 圆周率 3.1415 Math.SQRT1_2 1/2

JavaScript中的数学运算介绍_javascript技巧

JavaScript中,数学运算可藉由两种操作来实现: 1.+.-.*./.%等操作符. 2.使用Math对象的计算函数.比如,用Math.pow(2,3)来计算2的3次方. 与Java不同,JavaScript中的数学运算不会抛出任何错误.计算结果的溢出.除以0.对负数进行开方这些操作都是合法的,其结果为JavaScript中的特殊值:正负Infinity(无限).正负0.NaN(非数): 1.正负Infinity.当计算结果比JavaScript所能表示的最大数(Number.MAX_VAL

Word 2013中使用“数学符号自动更正”功能输入数学符号

在Word2013中,用户可以通过"数学符号自动更正"功能输入数学符号.用户只需输入比较简单的字符串,就可以自动更正为较为复杂且难输入的数学符号(如≥.┴.≈等).默认情况下,用户只有在Word2013中编辑公式时,"数学符号自动更正"功能才有效.如果希望在所有状态下都能使用"数学符号自动更正"功能,则可以按照如下步骤进行设置: 第1步,打开Word2013文档窗口,依次单击"文件"→"选项"命令,如图20

在PowerPoint2013中制作数学图形立体矩形的简单方法

  PowerPoint2013中制作立体矩形时,如果直接用插入形状的方法绘制,那么是很难的事.在制作数学图形时,立体矩形是最常见的.难道就没有其他可绘制的方法吗?其实不然,下面通过实例为大家介绍下具体的绘制过程,新手朋友们不要错过. 简要概述 首先绘制矩形,按住Shift键,可以画出正方形.接着设置形状效果,有阴影.映像.发光.柔化边缘.棱台和三维旋转可供选择,本例选择的是三维旋转,并设置下X.Y和Z轴的旋转角度,修改深度大小为250磅,并设置曲面图的颜色.关闭窗格,设置完成. 步骤如下 启动