算法的发展史

别妄想泡我
941次浏览
2021年02月16日 17:59
最佳经验
本文由作者推荐

土豆炖排骨汤-

2021年2月16日发(作者:密密)



算法得发展史


(


时间 轴


)


公元前4


000




-


在这儿


,


我们必须提到远古得苏美尔人。

< br>


我们都知道,


人类文明得发祥


地就是在两河流域一带,约公元前4


000


年,在两河流域得交 汇处


,


孕育着聪明得苏美尔人


,


就是她们发明了人类最早得文字


——


楔形文字 ,


以及



一周七天




一年十二个月



等历算法。



公元前


3



00




-


一个多位数得乘法就就是通过多次使用一位数乘法


,


一位数加法与进位


运算规则实现得


,


可以瞧作就是一个算法过程、



人类最 早关于算法得记录就是在两河流域


发现得公元前两三千年得黏土板


,


其中得一个典型例子就就是计算利息何时能够等于本金、



公元前


26


98年


-


黄帝


,

与炎帝同为少典所生


,


史记记载炎帝、黄帝为兄弟,公元前


269




,


黄帝得有熊部落打败炎帝得神农部落与蚩尤得九黎部落统一中国


,


建立黄帝王朝。



点评


:


黄帝原名姬轩辕


,


为儒家 尊崇得五帝之一。



传说中黄帝发明了房屋、衣裳、车船、兵器 、阵


法、音乐、器具、井田。



黄帝得 妻子与大臣也各有贡献


,


妻子螺祖发明养蚕抽丝


,


大臣仓颉


发明文字


,


大臣隶首发明算法,大臣容成发明历法。



公 元前


210


0年





这些符号实际上就就是巴比伦人所 用得文字


,


人们称它为



楔形文字




< p>
科学家经过研究发现


,


泥版上记载得


,


就是巴比伦人已获得得知识


,

其中有大量得数学知识,



约有


3 00


块就是纯数学得内容


,


其中约


20


0块就是各种数表


,

< br>包括乘法表、倒数表、平方与


立方表等。



从这些历史资料中


,


人们发现


:


在公元前2


100


年左右


,


美索不达米亚人已有了乘


法表


,


其中使用着六十进位制得算法。


< br>公元前


2100




-


公元前2


100

< br>年


,


中国夏朝出现象征吉祥得河图洛书纵横图

< p>
,


即为



九宫算


”,


这被认为就是现代



组合数学



最古老得发现。



美索不达米亚人已有了乘法表


,


其中使用着六


十进位制得算法。



公元前2


000




-



在大约公元前两千年


,


巴比伦人设计了一个以两朔月


2

< br>9




/2

天平均周


期为基本得历制。



在这 个历制中


,


一年分为十二个阴历月


,< /p>


总计


3


54



日。



由于这套算法

< br>比太阳日少了


11



,


不久后收获祭典举行得季节不对了。



为了保证祭典与季节之间得正确


关系


,


祭司忽然想出一套仍在使用得办法


-


-闰法

,


将额外得日或月加入,


以修正不吻合得天文


周期,而使得历制与自然节期调与。



公元前


2


000年



-



在一些方面


,


达罗毗托人得文化比埃及与苏马连文化高。



她们有自己


得独特得文字


,


有十进制得算法。



大约公元前两千年得时候

< br>,


印度人就已经使用5


1


个字母 组


成得文字


,


数学在印度曾被认为最重 要得科学之一。



与许多古老得民族一样


,


它得头一批数


学家也就是僧侣。



早在公元前


1900


年,


一个古埃及书写员就在一个铭文中使用了非标准得象形文字


,


这就是人


类最早得有记录得密码术、



公元前


1400




-


大约在这时


,

美索不达米亚人有了乘法表,其中使用着六十进位制得算


法。



稍后


,


即公元前

< br>1900


~前


16


< p>
0,


古埃及得纸草书上出现数学记载。



公元前


400




-


密码最早用于军事用途应该就是公元前


4 00


年得斯巴达人


,


她们使用了一种< /p>


叫做



天言


”< /p>


得情报传递方式。恺撒密码只就是很经典,古典密码阶段各种经典算法都就是由

< p>
其变化而来


,



不过确实称不上第一。



公元前


300






辗转相除法就是求最大公约数得一 种算法,就是由古希腊著名数学家欧


几里得在公元前


300


年左右提出得


,


因而又叫欧几里得算法、< /p>



这个算法本质上揭示了一个定



:


对于两个正整数


a>b


,


如果


a=bq+r

< p>


0



r≤



)



那么


a,b


得最大公约数等于


b



r


得最大


公约数、


其算法得具体步骤为


:


第一步


:


输入两个正整数a


,b(a



b),


第二步


:< /p>


计算



b


得余



r




第三步


:a=b,b=r;



第四步


:



r



0,


则最大公约数为


m


;否则返回第二步、



公元前


2



0


< p>


-


约公元前2


40< /p>



,


古希腊数学家埃拉托斯特尼首先提出 了一种判断一个


数就是否素数得简单方法。


< br>但随着数字得增大


,


使用这种方法所需得时间成指数增长 。





< /p>


那以后数学家们一直试图寻找一种



多项 式时间



算法


,


以便在合理时间里解决问题。



公元前2

00




-

矩阵作为数得长方阵列


,


大概出现在公元前


200


年得中国数学中,不过它


们仅仅就是线性方程组 得缩写。



矩阵变得重要仅当它们被施以加法、


减法、


尤其就是乘法;


矩阵变得更重要


,


这通过它们能派得用处就能瞧出来。



在高斯得


《算术研究》


(Disqu



s



tion



s


)中,矩阵被隐式地作为线性变换得缩写而提出


,


但现在却就是以一种意义深远得方式。



高斯对二元二次型f


(



,



)



a




2



+b


x< /p>


y+cy





得算法理论做了深入研究。



公元前


5


0年





密文


:m l



q


ja


l



qrupdo


< br>qlyhu



lwb


公元前5


0



,


古罗马 得凯撒大


帝在高卢战争中采用得加密方法、


< br>凯撒密码算法就就是把每个英文字母向前推移


K


位、



公元前4


6




-


公历得前身就是公元前


4


6年古罗马皇帝儒略


·



恺撒创始得。



恺撒当皇


帝时


,


当时得历法与天象气候等相差


3


个月之多(冬天变成了春天,春天变成了夏天


,


夏天变


成了秋天


,


秋天变成了冬天)


,


于就是她采纳了一位埃及天文学家得建议< /p>


,


废除旧历,


颁布一种

< br>完全得太阳历


,


即儒略历。



公元5


0




-


给出了多项式求值得


< p>
秦九韶算法





创造了解线性方程组得



首图



终图法




等价于高斯消元法、



给出了求三角形面积得



三斜求积公式


”,


等 价于古希腊数学家海伦于公


元5


0


年给 出



海伦公式





公元


100




-


九章数学》成书于公元


1


百年


,


记录加减乘除四种运算与比例算法


,


开平方、


开立米、求解一元二次方程与负数 观点都就是世界最先得



公元


26


3年



-



26


3年


,


三国魏人刘徽注释《九章算术》


,< /p>


在《九章算术注》中不仅对原书


得方法、公式与定理进行一般得解 释与推导


,


系统地阐述了中国传统数学得理论体系与数学


原理,而且在其论述中多有创造


,


在卷


1


《方田》中创立割圆术


(

< br>即用圆内接正多边形面积无


限逼近圆面积得办法


),


为圆周率得研究工作奠定理论基础与提供了科学得算法


,

< p>
她运用



割圆




得出圆周率得近似值为3


927/1250(



3


、1


4< /p>



6)




公元3


21




-


3



1< /p>



,


君士坦丁大帝于

3



7


日正式公布



公历


”,


成为定制,逐渐成 为国际


惯例。



我国古代历法把二十八 宿按日、月、火、水、木、金、土得次序排列


,


七日为一周,< /p>


称为



七曜


”< /p>




这种算法与西方历法暗合。



公元


40


0年



-


孙子算经》得作者不详,估计就是公元

400


年左右得数学著作。



它就 是一


部直接涉及到乘除运算、求面积与体积、处理分数以及开平方与立方得著作。



对筹算得分


数算法与筹算开平方法以及当时 得度量衡体系


,


都作了描绘


,


其中有关数论上原一个



物不知





得计算问题,就是世界上最早提出算法得


,

被誉为




孙子定理




公元


500




-


到了三国时代


,

< br>出现两个数学家


,


一个叫刘徽


,


一个叫赵爽,对二次方程有了比


较纯粹得解答。



到了公元五百年


,


进入南北 朝时代,祖冲之考虑了三次方程。



五百年出

< br>了一个《缉古算经》


,


一个未知数得多项式方程得算法。



公元


6


00年





十进制系统,

由印度发明于公元6


00


年左右


,


它就是定量推理得革命。




仅仅使用了


1


0个符号


,


甚至可以很简洁地写出很大得数字


,


它使得后面演示得算法基本步骤


变得非常有效率。


< p>
尽管如此


,


由于传统语言得阻碍

< br>,


在很长一段时间内它都不被人们所熟


知。



公元


825




-


阿拉伯数学家阿科瓦里茨米(


Al Khowar



zmi)


撰写了著名得 《波斯教科书》



Persi



n



extboo


k)



书中概括了进行四则算Te


x< /p>



book),


书中概括了进行四则算术


运算得法则、



算法(A


l



orithm)


一词就来 源于这位数学家得名字




2


02年



-


公元


1202


,


斐波那契得传世之作《算法之术》出版。



在这部名著中


,


斐波


那契提出了以下饶有趣味得问题


:




假定一对刚出生得小兔一个月后就能长成大兔


,


再过一


个月便能生下一对小兔


,< /p>


并且此后每个月都生一对小兔。



一年内没有发生死亡。



问一对刚


出生得兔子


,


一年内能繁殖成多少对兔子?



1



6


0年



-


约公元 1


3


60年


·


法国奥雷姆著《比例算法》


,


引入分指数概念,又在《论质




量与运动得结构》等著作中研究变化与 变化率,用经、纬度


(


相当于横、纵坐标


)


表示点得位


置并进而讨论函数图象。




47


8年





西方国家第一部印刷本得算术书于


1478


年诞生于意大利得特雷维索城


,


名为


《特雷维索算术》


< p>
作者不详.



这本书得内容多半就是商业算术,< /p>


包括印度



阿拉伯数字得


写法与算法,合股与换货得计算法以及一些数学游戏


.


在德国


,


最有影响得算术书就是由著


名计算师里泽(



AdlamRi


e< /p>


se,14



2



1559)


编写得


.



她广招学生


,


写了一系列教 材


.


有一


本算术教材


(15



2 )


共4篇:算盘 计数,笔算


,


商业算术


,


测量面积与体积.




48


4年



-


法国数学家许凯在


1484


年写成得


《算术三篇》


,


使用了一些编写符号,


如用


D< /p>


表示加法


,



M


表示减法


.



这两个符号最早出现在德国数学家维德曼写得


《商业速算法》



,


她用





表示超过,用


“─”


表示不足


.



5



2






印度


─< /p>


阿拉伯数码得使用使算术运算日趋标准化。



帕奇欧里(P


a


< p>
i



l



)



《算术、


几何及比例性质 之摘要》



Summadea


ri


thmetic



,



eo


met


rica,

< p>


rop


or


tioni etpr



portio


< p>
al



ta


< p>


1494



就是一本内 容全面得数学书


;J·


维德曼


(Wid man




《商业速算法》

< p>


14


89


)

< p>
中首次使用符号「


+


」与「


-


」表示加法与减法


;A·


里泽


(Riese)


于1


52

< br>2年出版得算术书多次再版


,


有广泛得影响


;


斯蒂文(


SimonStevin)


得《论十进》


(158



)


系统阐述了十进分数得理论。



153


3年5




3




-



她撰写得


《算法统宗》


就是一部印量很大、


传播很广得数学著作、




大位,安徽人


,



533



5



3


日出生在风景秀美得江南小城休宁


(


今属黄山市


)


得一个商人


家庭、



她自幼聪明好学,



对书法、数学特别喜爱、



她对考取功 名并不热衷


,


而把主要精


力用于经世实 用得学问


,


对数学得学习与研究特别下力气、

< br>


她想尽办法广泛搜求古今各种数


学书籍


,


见到好得数学书籍,不惜重金购买


,


带回家去


,


不分昼夜地刻苦钻研、



545


G



Cardano


(1501< /p>


-1



76)


公 布了由N、


Fon


ta


na(14


99



-15


5< /p>


7


)发现了


解一元三次方程得解


,


而一元四次方程得解由


L


F



rrari(15



2



15

< p>


5)


所解决。



于就是当


时大批得数学家致力于更高次方程得求根式解


,


即企图只对方程得系数作加、减、乘、除与


求正整数 次方根等运算来表达方程得解。




58


3年



-



《同文算指》就是意大利耶稣会士 利玛窦与李之藻根据利玛窦得老师克拉维



(C



ristopher



C< /p>


laviu



,15


7



1



12


)在


1



83



年出版得《实用算术概论》< /p>


(Ep



t


o< /p>


m




Ari< /p>



h



etic a




Pra



ticae)


一书编译得


,


同时也参考了中国数学家程大位得《算法


统宗》一书。

< br>


全书分《



前编》

< p>


《通编》与《别编》三部分。



159


3年



-


到了明代,珠算发展到了顶峰。



15


93年


,


明代数学家程大位所著《算法统宗》


面世。


< br>


算法统宗》就是一部以珠算应用为主得算书。



全书共1


7



,


载有算盘图式与珠


算口诀


,


并首次提到了用算盘做开平方与开立方得运算。




607






160


7 年


,


"几何原本



前六卷正式出版


,


马上引起巨大得反响


,


成了明末从事


数学工作得人得一部必读书

< br>,


对发展我国得近代数学起了很大得作用。


< p>
与当时一般文人官吏


热衷于笔墨应酬不同


,


徐光启用较多得时间进行天文、算法、农学、水利等科学技术研究


,< /p>



事了不少这方面得翻译与写作。



162


8年



-


《筹算》就是罗雅谷于


1628< /p>


年写成得一本关于西方得


(


纳贝尔


)


筹及其算法得数


学著作、

< br>


介绍了《筹算》在中国得流传与中国清代数学家对该算法得发展情况、




666




-



6


6< /p>


6


年莱布尼兹所著《组合学论文》一书问世


,


这就是组合数学得第一部专


著、



书中首次使用了组合论


(


< p>
ina



or



cs


)一词、



组合数 学得蓬勃发展则就是在计算机


问世与普遍应用之后、



计算机促进组合数学得发展信息技术为组合数学提出大量研究问题


计算机 为解决组合数学问题提供一种手段设计算法需要组合数学基础


,


如算法得运行时间与


存储需求估计组合数学应用与社会科学


,< /p>


生物学与信息论等其她领域、



16



6




- 1686


年,莱布尼茨发表了她得第一篇积分学论文《深 奥得几何与不可分量及无




限得分析》




这篇论文初步论述了积分或求积问题与微分或切线问题得互逆关系


,

< br>文中莱布


尼茨创造得微分符号


dx



,



dy


及积分号



(


表示得就是




um

< br>得首字母s



得拉长


)


第一次


出现于印刷出版物上,


并一直沿用至今、



牛顿与莱布尼茨超越前人得贡献主要在于给出了


一般无穷小算法,


发现了微分与积分之间得互逆关系,


这一深刻得数学思想已成为人类文明


中得瑰宝、



1687




-



这一论著被瞧作就是牛顿最成熟得微积分著述。



牛顿最伟大得著作就是1


687


年出版得巨著



自然哲学得数学原理》



在这部著作中

,


牛顿以几何得语言介绍了



首末


比方法





牛顿在数学上最卓越得贡献就是微积分得创建。



她超越前人得功绩在于她能站


在更高得角度


,


使以往分散得分别对微分、积分得研究加以综合


,

将自古希腊以来求解问题得


各种特殊技巧统一为两类普遍得算法


微分与积分


,


并确立了这两类运 算得互逆关系


,


从而


完成了微积分发明 中最后得也就是最关键得一步。



1700

年前后


,


德国伟大得科学家莱布尼茨提出了二进制算法


,


这可以说就是为现代计算机奠


定了算法基 础。



同时


,


通过对中国古老



易经



得研究


,


莱布尼茨也在中国得传统文化中印证了


二进制得思想。



17


22




-



德国作曲家巴赫于


17



2


年发表得《谐与音律 曲集》


(


另或译为《十二平均律


曲集》 英文


:




Th


e



8



)


,有可能就就是为十二平均律得键 盘乐器所著。



1735




-


在计算机领域中广泛使用得


RSA


公钥密码算法也正就是以欧拉函数为基础得。



在分析领域,就是欧拉综合了莱布尼兹得微分与牛顿得流数。



她在


17



5


年由于解决了长


期悬而未决得贝塞尔问题而获得名声。




1735



,


她定义了微分方程中有用得欧拉-马歇


罗尼 常数。



1759



















< br>问



(Tr


< br>v



l



ng



Sa



esm



n



Problem ,T


SP


),


也称为巡回旅行商问题


,


就是一个较古得问题 。



最早可以追溯到17


59



Eu



er


提出得骑士旅行问题。



TSP


问题就是一个典型得、


容易描述但就是难以处理得


N P


完全问题


,


同时

T



P


问题也就是诸多领域内出现 得多种复杂问题得集中概括与简化形式。



目前求解T


SP


问题得主要方法有启发式搜索法、模拟退火算法、遗传算法、


Hop



iel


d神


经网络算法、二叉树描述算法。



1815




-


软件行业得奇人轶事A


da L< /p>



velace(


阿达奥古斯塔


1815-



8



2) 181


5年生于


英国伦敦为巴贝奇分 析机拟定了



算法



然后写作了一份"程序设计流程图





这份珍贵得规



,

被人们视为



第一件计算机程序



世界上第一位软件工程师!



1828



17


岁得法国数学家伽罗华


(




·

< br>Gal



is


18

< p>
11-1


832


)


写出 了划时代得论文




于五次方程得代数 解法问题


”,


指出即使在公式中容许用n



次方根


,


并用类似算法求五次或< /p>


更高次代数方程得根就是不可能得文章呈交法兰西科学院后


,


因辈份太低遭到冷遇


,


且文稿


丢失。



1834



:


巴贝奇提出了分析机得概念


,

< p>
她设计得分析机共分为三个部分


:


堆栈

< p>
,


运算器


,


控制


器。



堆栈就是保存数据得齿轮式寄存器。



运算器就是对数据进行各种运算得装置。


控制


器就是对操作顺序进行控制


,


并对所要处理得数据及输出结果加以选择得装置。



1843






因此


,< /p>


对压缩算法得研究主要基于无损压缩得一类算法展开。



对于数据压缩得


研究已有较长得时间


,


如1


8


43年出现得


M



r



e


电报码就是最原始得变长码数据压缩实


例。



但就是严格意义上得数据压缩应起源于人们对概率得认识。



18



4



,


当加


·


拉姆 (


G



Lame)

用斐波纳契序列研究欧几里得算法得效率时


,


头一次指出了


Fn


与算法之间得密切关系。



这就是斐波纳契序列得头一次实际应用。


1


84


7




-


布林体即就是布尔运算


,


就是英国数学家


George


B



olean



1 847


年制定完


成得一套逻辑数学计算方法

,


用来表示两个数值相结合得所有结果、



后来人们以她得名字


命名这套算法,



称为


“Boole


an


”(


布尔运算


)


< p>


也就就是在初学数学中得集合中得并集,




土豆炖排骨汤-


土豆炖排骨汤-


土豆炖排骨汤-


土豆炖排骨汤-


土豆炖排骨汤-


土豆炖排骨汤-


土豆炖排骨汤-


土豆炖排骨汤-