算法的发展史(时间轴)公元前4000年-在这儿,我们必须提到远古的苏美尔人。我们都知道,人类文明的发祥地是在两河流域一带,约公元前4000年,在两河流域的交汇处,孕育着聪明的苏美尔人,是他们发明了人类最早的文字——楔形文字,以及“一周七天”,“一年十二个月”等历算法。公元前3000年-一个多位数的乘法就是通过多次使用一位数乘法,一位数加法和进位运算规则实现的,可以看作是一个算法过程.人类最早关于算法的记录是在两河流域发现的公元前两三千年的黏土板,其中的一个典型例子就是计算利息何时能够等于本金.公元前2698年-黄帝,与炎帝同为少典所生,史记记载炎帝、黄帝为兄弟,公元前2698年,黄帝的有熊部落打败炎帝的神农部落和蚩尤的九黎部落统一中国,建立黄帝王朝。点评:黄帝原名姬轩辕,为儒家尊崇的五帝之一。传说中黄帝发明了房屋、衣裳、车船、兵器、阵法、音乐、器具、井田。黄帝的妻子和大臣也各有贡献,妻子螺祖发明养蚕抽丝,大臣仓颉发明文字,大臣隶首发明算法,大臣容成发明历法。公元前2100年-这些符号实际上就是巴比伦人所用的文字,人们称它为“楔形文字”。科学家经过研究发现,泥版上记载的,是巴比伦人已获得的知识,其中有大量的数学知识,大约有300块是纯数学的内容,其中约200块是各种数表,包括乘法表、倒数表、平方和立方表等。从这些历史资料中,人们发现:在公元前2100年左右,美索不达米亚人已有了乘法表,其中使用着六十进位制的算法。公元前2100年-公元前2100年,中国夏朝出现象征吉祥的河图洛书纵横图,即为“九宫算”,这被认为是现代“组合数学”最古老的发现。美索不达米亚人已有了乘法表,其中使用着六十进位制的算法。公元前2000年-在大约公元前两千年,巴比伦人设计了一个以两朔月291/2天平均周期为基本的历制。在这个历制中,一年分为十二个阴历月,总计354日。由于这套算法比太阳日少了11天,不久后收获祭典举行的季节不对了。为了保证祭典和季节之间的正确关系,祭司忽然想出一套仍在使用的办法--闰法,将额外的日或月加入,以修正不吻合的天文周期,而使得历制和自然节期调和。公元前2000年-在一些方面,达罗毗托人的文化比埃及和苏马连文化高。他们有自己的独特的文字,有十进制的算法。大约公元前两千年的时候,印度人就已经使用51个字母组成的文字,数学在印度曾被认为最重要的科学之一。和许多古老的民族一样,它的头一批数学家也是僧侣。早在公元前1900年,一个古埃及书写员就在一个铭文中使用了非标准的象形文字,这是人类最早的有记录的密码术.公元前1400年-大约在这时,美索不达米亚人有了乘法表,其中使用着六十进位制的算法。稍后,即公元前1900~前1600,古埃及的纸草书上出现数学记载。公元前400年-密码最早用于军事用途应该是公元前400年的斯巴达人,他们使用了一种叫做“天言”的情报传递方式。恺撒密码只是很经典,古典密码阶段各种经典算法都是由其变化而来,不过确实称不上第一。公元前300年-辗转相除法是求最大公约数的一种算法,是由古希腊著名数学家欧几里得在公元前300年左右提出的,因而又叫欧几里得算法.这个算法本质上揭示了一个定理:对于两个正整数a>b,如果a=bq+r(0<r≤b),那么a,b的最大公约数等于b,r的最大公约数.其算法的具体步骤为:第一步:输入两个正整数a,b(a>b),第二步:计算a÷b的余数r;第三步:a=b,b=r;第四步:若r=0,则最大公约数为m;否则返回第二步.公元前240年-约公元前240年,古希腊数学家埃拉托斯特尼首先提出了一种判断一个数是否素数的简单方法。但随着数字的增大,使用这种方法所需的时间成指数增长。从那以后数学家们一直试图寻找一种“多项式时间”算法,以便在合理时间里解决问题。公元前200年-矩阵作为数的长方阵列,大概出现在公元前200年的中国数学中,不过它们仅仅是线性方程组的缩写。矩阵变得重要仅当它们被施以加法、减法、尤其是乘法;矩阵变得更重要,这通过它们能派的用处就能看出来。在高斯的《算术研究》(Disquisitiones)中,矩阵被隐式地作为线性变换的缩写而提出,但现在却是以一种意义深远的方式。高斯对二元二次型f(x,y)=ax2+bxy+cy2的算法理论做了深入研究。公元前50年-密文:mldqjalqrupdoxqlyhuvlwb公元前50年,古罗马的凯撒大帝在高卢战争中采用的加密方法.凯撒密码算法就是把每个英文字母向前推移K位.公元前46年-公历的前身是公元前46年古罗马皇帝儒略·恺撒创始的。恺撒当皇帝时,当时的历法与天象气候等相差3个月之多(冬天变成了春天,春天变成了夏天,夏天变成了秋天,秋天变成了冬天),于是他采纳了一位埃及天文学家的建议,废除旧历,颁布一种完全的太阳历,即儒略历。公元50年-给出了多项式求值的“秦九韶算法”.创造了解线性方程组的“首图—终图法”,等价于高斯消元法.给出了求三角形面积的“三斜求积公式”,等价于古希腊数学家海伦于公元50年给出“海伦公式”.公元100年-九章数学》成书于公元1百年,记录加减乘除四种运算和比例算法,开平方、开立米、求解一元二次方程和负数观点都是世界最先的公元263年-263年,三国魏人刘徽注释《九章算术》,在《九章算术注》中不仅对原书的方法、公式和定理进行一般的解释和推导,系统地阐述了中国传统数学的理论体系与数学原理,而且在其论述中多有创造,在卷1《方田》中创立割圆术(即用圆内接正多边形面积无限逼近圆面积的办法),为圆周率的研究工作奠定理论基础和提供了科学的算法,他运用“割圆术”得出圆周率的近似值为3927/1250(即3.1416);公元321年-321年,君士坦丁大帝于3月7日正式公布“公历”,成为定制,逐渐成为国际惯例。我国古代历法把二十八宿按日、月、火、水、木、金、土的次序排列,七日为一周,称为“七曜”。这种算法与西方历法暗合。公元400年-孙子算经》的作者不详,估计是公元400年左右的数学著作。它是一部直接涉及到乘除运算、求面积和体积、处理分数以及开平方和立方的著作。对筹算的分数算法和筹算开平方法以及当时的度量衡体系,都作了描绘,其中有关数论上原一个“物不知数”的计算问题,是世界上最早提出算法的,被誉为“孙子定理”公元500年-到了三国时代,出现两个数学家,一个叫刘徽,一个叫赵爽,对二次方程有了比较纯粹的解答。到了公元五百年,进入南北朝时代,祖冲之考虑了三次方程。五百年出了一个《缉古算经》,一个未知数的多项式方程的算法。公元600年-十进制系统,由印度发明于公元600年左右,它是定量推理的革命。它仅仅使用了10个符号,甚至可以很简洁地写出很大的数字,它使得后面演示的算法基本步骤变得非常有效率。尽管如此,由于传统语言的阻碍,在很长一段时间内它都不被人们所熟知。公元825年-阿拉伯数学家阿科瓦里茨米(AlKhowarizmi)撰写了著名的《波斯教科书》(PersianTextbook)书中概括了进行四则算Textbook),书中概括了进行四则算术运算的法则.算法(Algorithm)一词就来源于这位数学家的名字1202年-公元1202年,斐波那契的传世之作《算法之术》出版。在这部名著中,斐波那契提出了以下饶有趣味的问题:.假定一对刚出生的小兔一个月后就能长成大兔,再过一个月便能生下一对小兔,并且此后每个月都生一对小兔。一年内没有发生死亡。问一对刚出生的兔子,一年内能繁殖成多少对兔子?1360年-约公元1360年·法国奥雷姆著《比例算法》,引入分指数概念,又在《论质量与运动的结构》等著作中研究变化与变化率,用经、纬度(相当于横、纵坐标)表示点的位置并进而讨论函数图象。1478年-西方国家第一部印刷本的算术书于1478年诞生于意大利的特雷维索城,名为《特雷维索算术》,作者不详.这本书的内容多半是商业算术,包括印度—阿拉伯数字的写法和算法,合股和换货的计算法以及一些数学游戏.在德国,最有影响的算术书是由著名计算师里泽(AdlamRiese,1492~1559)编写的.他广招学生,写了一系列教材.有一本算术教材(1522)共4篇:算盘计数,笔算,商业算术,测量面积和体积.1484年-法国数学家许凯在1484年写成的《算术三篇》中,使用了一些编写符号,如用D表示加法,用M表示减法.这两个符号最早出现在德国数学家维德曼写的《商业速算法》中,他用“+”表示超过,用“─”表示不足.1522年-印度─阿拉伯数码的使用使算术运算日趋标准化。L·帕奇欧里(Pacioli)的《算术、几何及比例性质之摘要》(Summadearithmetica,geometrica,proportionietproportionalita,1494)是一本内容全面的数学书;J·维德曼(Widman)的《商业速算法》(1489)中首次使用符号「+」和「-」表示加法和减法;A·里泽(Riese)于1522年出版的算术书多次再版,有广泛的影响;斯蒂文(SimonStevin)的《论十进》(1585)系统阐述了十进分数的理论。1533年5月3日-他撰写的《算法统宗》是一部印量很大、传播很广的数学著作.程大位,安徽人,1533年5月3日出生在风景秀美的江南小城休宁(今属黄山市)的一个商人家庭.他自幼聪明好学,对书法、数学特别喜爱.他对考取功名并不热衷,而把主要精力用于经世实用的学问,对数学的学习和研究特别下力气.他想尽办法广泛搜求古今各种数学书籍,见到好的数学书籍,不惜重金购买,带回家去,不分昼夜地刻苦钻研.1545年G.Cardano(1501-1576)公布了由N.Fontana(1499-1557)发现了解一元三次方程的解,而一元四次方程的解由L.Ferrari(1522—1565)所解决。于是当时大批的数学家致力于更高次方程的求根式解,即企图只对方程的系数作加、减、乘、除和求正整数次方根等运算来表达方程的解。1583年-《同文算指》是意大利耶稣会士利玛窦和李之藻根据利玛窦的老师克拉维斯(ChristopherClavius,1537—1612)在1583年出版的《实用算术概论》(EpitomeArithmeticaePracticae)一书编译的,同时也参考了中国数学家程大位的《算法统宗》一书。全书分《前编》、《通编》和《别编》三部分。1593年-到了明代,珠算发展到了顶峰。1593年,明代数学家程大位所著《算法统宗》面世。《算法统宗》是一部以珠算应用为主的算书。全书共17卷,载有算盘图式和珠算口诀,并首次提到了用算盘做开平方和开立方的运算。1607年-1607年,几何原本前六卷正式出版,马上引起巨大的反响,成了明末从事数学工作的人的一部必读书,对发展我国的近代数学起了很大的作用。和当时一般文人官吏热衷于笔墨应酬不同,徐光启用较多的时间进行天文、算法、农学、水利等科学技术研究,从事了不少这方面的翻译和写作。1628年-《筹算》是罗雅谷于1628年写成的一本关于西方的(纳贝尔)筹及其算法的数学著作.介绍了《筹算》在中国的流传和中国清代数学家对该算法的发展情况.1666年-1666年莱布尼兹所著《组合学论文》一书问世,这是组合数学的第一部专著.书中首次使用了组合论(Combinatorics)一词.组合数学的蓬勃发展则是在计算机问世和普遍应用之后.计算机促进组合数学的发展信息技术为组合数学提出大量研究问题计算机为解决组合数学问题提供一种手段设计算法需要组合数学基础,如算法的运行时间和存储需求估计组合数学应用与社会科学,生物学和信息论等其他领域.1686年-1686年,莱布尼茨发表了他的第一篇积分学论文《深奥的几何与不可分量及无限的分析》,这篇论文初步论述了积分或求积问题与微分或切线问题的互逆关系,文中莱布尼茨创造的微分符号dx,dy及积分号∫(表示的是sum的首字母s的拉长)第一次出现于印刷出版物上,并一直沿用至今.牛顿和莱布尼茨超越前人的贡献主要在于给出了一般无穷小算法,发现了微分和积分之间的互逆关系,这一深刻的数学思想已成为人类文明中的瑰宝.1687年-这一论著被看作是牛顿最成熟的微积分著