技术标签: 作业 杂文 dijkstra 计算机科学 图灵奖
Dilkstra全名为Edfger Wybe Dijkstra,曾在1972因年获得计算机领域最高荣誉图灵奖。
大部分中国的程序员能记住这个名字,很大程度是因为学过图论里计算最短路径的Dijkstra算法,然而,大部分的人都难以记住其名字正确的拼写,因为他是荷兰人,名字不符合英文发音。
(我一般都叫他迪杰斯特拉,也不知对不对。。)
现在我们来回顾一下顺便复习一下他最有名的迪杰斯特拉算法。
for(int i=1;i<n;i++){
min=inf;
for(int j=1;j<n;j++){
if(book[j]==0&&dis[j]<min){
min=dis[j];
rec=j;
}
}
book[rec]=1;
for(int k=1;k<n;k++){
if(book[k]==0&&a[rec][k]<inf&&dis[k]>dis[rec]+a[rec][k]){
dis[k]=dis[rec]+a[rec][k];
}
}
}
其算法核心我觉得是用贪心和松弛操作。
这个算法有个有趣的背景,在一台新的叫 ARMAC 的计算机发布之前,Dijkstra 需要想出一个可以让不懂数学的媒体和公众理解的问题,以便向他们展示。有一天他和未婚妻在阿姆斯特丹购物,他们停下来在一家咖啡店的阳台上喝咖啡休息,他开始思考这个问题。他觉得可以让计算机演示如何计算荷兰两个城市间的最短路径,这样问题和答案都容易被人理解。于是他在 20 分钟内想出了高效计算最短路径的方法。Dijkstra 自己也没有想到这个 20 分钟的发明会成为他最著名的成就之一,并且会被以他的名字命名为 Djikstra 算法。
虽然很多计算机软件都是Dijkstra发明的,但他却很少使用计算机,他一般只用来回复电子邮件和浏览网页。他也不用计算机写论文,他喜欢用万宝龙钢笔写论文和文章。
他一生中写了1300多篇文章,他用自己姓名的首字母 EWD 给他们编号:EWD 1, EWD 2, … EWD 1318。在计算机科学中,这些文章被统称为「EWD 报告」。
他的算法和文章大都让人感受到简洁、经济、优雅,或许这也与他的生活习惯和性格有一定的关系。
他贡献无数,致力于计算机理论的发展,在20世纪计算机科学的发展前途尚处在萌芽阶段,Dijkstra能够洞穿其发展大胆预测,致力于理论和应用的研究,其远见与智慧不得不令人惊叹,而且他对计算机的执着和他自身的人格魅力,也令我们折服。
Python-Mac系统安装pip及jieba库
描述某饮料公司最近推出了一个“收集瓶盖赢大奖”的活动:如果你拥有10个印有“幸运”、或20个印有“鼓励”的瓶盖,就可以兑换一个神秘大奖。现分别给出你拥有的印有“幸运”和“鼓励”的瓶盖数,判断是否可以去兑换大奖。输入一行,包含两个整数,分别是印有“幸运”和“鼓励”的瓶盖数,用一个空格隔开。输出一行。若可以兑换大奖,输出1,否则输出0。样例输入11 19样例输出1#include...
点个赞留个关注吧!!!lua是一款很好用的软件,用来多控手机,今天给大家详细讲一下某些常用模块的使用下面的模块介绍仅限于小米系统,小米手机可以全部使用1、writePasteboard 这段代码可以将【文本】两字存入到你手机的剪贴板,相当于复制了文件这两个字writePasteboard('文本'); --写入剪贴板2、readPasteboard 这段代码可以将你剪贴板的内容读出来readPasteboard(); --读出剪贴板内容...
**Django文档——Model字段选项(Field Options)**建立一个简易Modelclass Person(models.Model): GENDER_CHOICES=( (1,'Male'), (2,'Female'), ) name=models.CharField(max_length=30,unique=True,verbose_name='姓 名') birthday=models.DateFie
一、IPv6地址1. IPv6 地址表示方式IPv6 地址被表示为以冒号(:)分隔的一连串 16 比特的十六进制数。每个 IPv6 地址被分为 8 组,每 组 的 16 比 特 用 4 个 十 六 进 制 数 来 表 示 , 组 和 组 之 间 用 冒 号 隔 开 , 比 如 :2001:0000:130F:0000:0000:09C0:876A:130B。为了简化 IPv6 地址的表示,对于 I...
题外话昨日,微博一条热搜:华为外包公司程序员倒地。这种息息相关的消息,我肯定要第一时间关注,毕竟我也是小小程序员,也怕不知不觉的倒地不醒,留下我丰富的财产&女人,多么伤悲。事后,中软国际回应:该员工只是低血糖晕倒,已正常上班。还好虚惊一场,不然可能又是一个家庭的破碎。在这里提醒广大猿们,人不是铁,请好好照顾自己的身体,为自己、更为你的家人。正文从这里开始~~~~~~~~~~~~不知道...
lazada API 开发系列:item_search - 按关键字搜索商品item_search - 按关键字搜索商品API返回值说明Result Object:{“items”: {“total_results”: “4080”,“real_total_results”: “4080”,“page”: “1”,“page_size”: 40,“language”: “th”,“currency_code”: “THB”,“item”: [{“title”: “รองเท้าส
文章目录前言没啥子前言,就是之前写的一篇String笔记被别人夸了一下,然后发现自己写的有些地方是错了,所以好好整了一篇,还想体验一下被夸的滋味。环境jdk1.8.0_171win10家庭版Talk is cheap , show me you code//eg1String s1 = new String("aa");先来看eg1,这一个最简单的创建String对象,老生常谈,这个过程创建了几个对象?这个问题主要点在于在常量池中有没有创建aa常量,不多叭叭,看图。Const
网络入侵检测传统 NIDS绿盟 IDS 体系架构 绿盟 IPS 体系架构 IDS/IPS 部署示意图 大型全流量 NIDS由于 NIDS 采用的是基于攻击特征的签名库,只要加载的攻击特征一多,系统负载会马上飙升,远到不了系统的标称负载就会出现丢包和误报的上升。不能跟基础架构一起扩展的安全解决方案最终都会掣肘 针对 IPS 一个打折扣的版本就是利用 DDo...
<br /> GapTime Limit: 5000MS Memory Limit: 65536KTotal Submissions: 1286 Accepted: 592<br />DescriptionLet's play a card game called Gap. <br />You have 28 cards labeled with two-digit numbers. The first digit (from 1 to 4) represents the suit of the card,
要安装pydot,得首先安装Graphviz和pyparsing。 1. 安装graphviz(安装过程中注意选择for everyone);(1)下载graphviz-2.38.msi,下载地址:https://graphviz.gitlab.io/_pages/Download/Download_windows.html(2)安装完设置环境变量中path设置,在pa...
之前我做了蓝牙遥控的小车,这里为了拓展遥控的距离,我准备采用CC1101模块进行拓展距离。端口的配置上我使用MCC进行配置,这样就不需要在移植代码中实现一堆的初始化了,非常方便。PIC和AVR都具备内部上拉电阻,在需要配置为输入的端口,使用上拉稳定电平是非常容易的。另外MCC的端口可定制新名字功能,非常有助于我们移植代码,防止多了就容易乱。以及SPI的端口操作映射,只需要在对应的头文件修改成MCC生成的代码即可。按钮的使用,也是非常容易,直接使用MCC生成的函数。来源:21ic.com。