人类历史上最重要的36个代码片段

这个点子奏效了,也许有点太好了。通过把“赞”做成一个零阻力的手势,到了2012年,大家的点赞次数已经超过1万亿次,并且的确释放出了大量的验证。但是它的副作用也令人不安。我们发布了一张照之后片,就会坐在那里焦急地不断刷新页面,等待点赞数的增加。我们想知道为什么别人拿到的点赞数会比自己的多。于是我们开始给自己日常的在线行为放大功率:想变得更有趣、更刻薄、更迷人、更极端。

代码塑造了我们的生活。就像风投家MarcAndreessen所写那样:“软件蚕食整个世界”,尽管此刻说软件正在消化世界可能会更准确些。

从文化角度上来讲,代码是比较下层的存在。我们可以感觉到它对我们日常现实的神秘影响,但是却很少能看到它,而且对于非初学者来说有点高深莫测。(硅谷的人喜欢这样这有助于他们自我神话为巫师。)我们给电影、游戏和电视都立了十大排行榜,让那些塑造了我们灵魂的作品扬名立万。但是,即便代码跟这些类型的作品一样反映了时代思潮,我们却未曾坐下来汇编过世界上最重要的代码清单。

所以Slate杂志决定自己来做这件事。为了弄清楚有哪些让世界为之倾斜的软件,杂志编辑对计算机科学家、软件开发人员、历史学家、政策制定者以及新闻工作者进行了民意调查。这些人需要做出以下选择:哪些代码段影响巨大?哪些代码改变了我们的生活?约有75位受访者提出了各种各样的想法,Slate从中选择了36位。鉴于写成的有影响的代码如汗牛充栋,这里的清单并不完整,也不可能完整。(我很喜欢的一个并没有人选:快速排序算法!或者AdaLovelace的伯努利算法也许也算一个。)就像所有的榜单一样,它的目的是启发,去帮助我们重新思考代码是如何影响我们的生活,以及程序员所做的决策是如何影响未来的。

里面的有些代码你可能已经听说过,比如HTML什么的。有的代码功能强大(比如用来对概率建模的蒙特卡洛模拟),但一般人完全不知道是什么。有的则包含了致命错误,比方说波音737Max的缺陷。还有一些令人毛骨悚然,比方说让营销人员知道你是否已打开电子邮件的像素跟踪。

有一个趋势是很明显的:最重要的代码往往会通过消除阻力来塑造新行为。当软件让做某件事情变得更容易时,这种事情我们就会做得更多。1988年编写的代码第一次建立起“InternetRelayChat(IRC,多人在线交谈系统)”,这使得早期的网民彼此可以实时进行文字聊天。现在,实时文字聊天已经无处不在,从令人应接不暇的Slack职场闲聊吹水,到Twitch直播的钓鱼和反钓鱼之战,不一而足。

某些代码什么时候具备了划时代意义未必总是很清晰。一开始它只是个怪异的尝试,一个实验气球。《Spacewar!》是第一个获得病毒式流行的视频游戏。可是在1961年的时候,用价值12万美元(相当于2019年的100万美元)的机柜式计算机万游戏被视为一种相当无聊的使用方式。但是它独创了很多帮助计算机进入主流的概念:用图标表示数据,让用户用手持控制器操作这些图标。

代码的影响可能会让所有人感到惊讶,包括写代码的人在内。—CliveThompson,《程序员:新部落的形成和世界的重塑(Coders:TheMakingofaNewTribeandtheRemakingoftheWorld)》作者

年代:1725

第一段代码

二进制编程早在计算机诞生之前就有了。大家认为BasileBouchon是第一个给纸片打孔并用来控制机器的人:1725年,他发明了一种织布机,这种机器可以根据送入的穿孔卡片的指令编织图案。打孔的是“1”,没有打孔是“0”。尽管此后东西发生了很大的变化,但代码的基本构建块并没有改变。—ElenaBotella,Slate

年代:1948

既开辟了计算机代码的使用,也引领了塑造冷战军备竞赛的核毁灭计算机模型的使用

ENIAC(电子数字积分计算机)是第一台可编程的电子计算机。机器于1945年建成,每解决一个新问题都要靠重新连线许多部件来完成。当一项任务(比如加法)完成时,会用一个脉冲来触发下一项任务。但是几年后,克拉拉·丹·冯·诺依曼和洛斯阿拉莫斯的科学家NicholasMetropolis对ENIAC重新进行了接线,让这台机器跑出来有史以来在任何计算机上执行的第一段现代代码:从可寻址只读存储器(ENIAC的函数表开关)执行数百条数字指令。他们模拟了新墨西哥州洛斯阿拉莫斯国家实验室正在评估的几种原子弹设计的爆炸情况,用蒙特卡洛技术来模拟一个复杂系统,几乎是一步步地把可能结果的概率分布呈现出来。冯·诺依曼和Metropolis)向洛斯阿拉莫斯的核科学家发送了20000多张卡片,跟踪弹头引爆后模拟中子的变化情况。知道今天,这段代码的子孙后代还在洛斯阿拉莫斯那里发挥作用。—ThomasHaigh,《ENIACinAction:MakingandRemakingtheModernComputer(ENIAC实战:现代计算机的制造和改造)》合著者

年代:1952

令计算机处理文字成为可能

当GraceHopper决定通过以人类语言为基础来简化整个过程时,她正在对一台早期计算机进行编程。二战期间,Hopper加入了美国海军预备队,她知道,像她在部队的上司一样,大家都在努力去理解二进制代码。而如果编程语言是基于英语的话,那么这项工作就不会那么容易出错,并且对于那些没有数学博士学位的人来说也更加平易近人了。

一些人对这种想法嗤之以鼻,但1950年代初时,她设计出了一种编译器,也就是一组可以将更容易理解的代码转化为由机器处理的较低级代码的指令。通过这一工具,她和她的实验室开发出了FLOW-MATIC,这是第一种将英语纳入该过程的编程语言。——MollyOlmstead,Slate

年代:1961年

发行的第一款视频游戏

SteveRussell,收集自Bitsavers.org

很快,星际飞行!就在早期的“黑客”社区中传播开来。后来DEC把它预装进了每一台PDP-1里面,并预装到核心内存里面,准备在安装时进行演示。这个程序对1960年代规模还很小的编码社区产生了重大影响,并启发了后面数代的视频游戏创作者。现在它还从模拟者那里找到自己的存在,并且在计算机历史博物馆的最后一台可操作PDP-1上还在定期演示。2018年,游戏的首席开发者SteveRussell在史密森尼学会上说:“它已有50多年的历史。没有未解决的用户投诉。没有崩溃报告。而且支持依旧提供。”——ArthurDaemmrich,导演,勒梅森发明与创新研究中心

年代:1965

拜托,这是电子邮件。

CTSS程序员MAIL手册页

年代:1968

现代预测警务和种族定性计算机化的开始

1965年,当林登·约翰逊总统组建总统执法与司法委员会时,他下令该委员会研究如何利用计算机来帮助解决美国的的“犯罪问题”,他和该委员会对这个问题的定性是“城市问题”和“黑人问题”。这个问题的答案是“警察巡逻算法(PoliceBeatAlgorithm,PBA)”,该算法旨在解决规划问题,比方说在城市的特定区域需要安排多少名警察巡逻之类的问题。通过将PBA与犯罪数据库相结合,警方可以在犯罪实施之前根据种族人口统计数据自动生成嫌犯档案,并相应部署资源(警察,武器和其他装备)。今天的预测警务对黑人和棕色人种监视并定罪的情况相对不成比例。就像PBA的故事提醒我们那样,这种情况并不是不可预见的技术故障的结果:相反,这是这项技术50年设计的完美体现。——CharltonMcIlwain,《黑人软件(BlackSoftware:TheInternet&RacialJustice,FromtheAfronettoBlackLivesMatter)》作者

年代:1969

防止登月舱的计算机在太空中耗尽空间的代码

数字化:VirtualAGC与MITMuseum

阿波罗制导系统计算机(AGC)是一个奇迹:就像计算阿波罗重返地球轨迹的PoppyNorthcutt告诉我那样,AGC的计算能力还比不上今天记录个人信息的贺卡。但是,它却做到了该做的。

有限的计算能力和存储空间意味着必须细致地管理好任务,因此AGC始终聚焦在最重要的工作上。如果它没有足够的空间来执行任务,那就不可能完成任务。AGC软件团队知道,总有些事情是自己计划不到的。因此,他们开发了BAILOUT。当计算机有空间用完(或“溢出”)的风险时,AGC会触发BAILOUT把不太重要的数据和操作调走,从而让重要的数据和操作保持正常运行。

在阿姆斯特朗说出“鹰已降落”之前,溢出警报还会再响三声,但永远是因为事情按预期进行才会响。“救助”一词通常表示任务以失败结束,但在这里却让人类的最高成就成为现实。—史密森尼国家航空航天博物馆主任EllenStofan

日期:1972年或更早

把世代引入代码的一句话

年代:1972

计算史上最灾难性的设计错误

GNUC参考手册

1972年,丹尼斯·里奇(DennisRitchie)做出了一个重大决定:自己的新语言要用一种所谓的“空终止串”来表示文本。这个概念其实早就出现了,但是他在自己的新语言,C语言里面把它奉若神明,而这一决定的遗产从此就一直缠住了我们。

编程语言表示一段文本的主要有两种方式:它可以是内在的固定长度的——“我就包含10个字符,就这么多。”也可以用过空值(null)结尾——这里有一堆的字符,你尽管看下下去,直到最后到达零字节为止,祝你好运!”

C代码中一个极其常见的错误是把一个长字符串复制到一个较短的字符串,造成结尾处溢出,这意味着你破坏了刚好在附近的其他数据。就像在白板边上写东西一样。

除了只是导致程序发生故障外,此类错误还可以用来说服程序用经过精心设计的特定数据去覆盖某些内容,从而改变程序的行为。这就是缓冲区溢出攻击。但凡你听说过的安全漏洞几乎都是从这里开始的,其始作俑者就是1988年的莫里斯蠕虫病毒(MorrisWorm)。

仔细写代码可以避免在C语言中出现此类错误,但是这种语言的特点导致此类错误产生容易检测难。几乎所有的现代语言都避开了以null终止的字符串,但是从路由器到“智能”灯泡,C和C++仍然在世界的基础处运行着。因此,在将近50年后,我们仍跟这类bug在玩打地鼠的游戏。——JamieZawinski,Netscape开发者,Mozilla.org创始人,DNALounge老板

年代:1975

第一个基于数据包交换的公共数据网络,是当今互联网的骨干

年代:1982

一个小小的小数点之别付出的巨大代价

温哥华证券交易所使用的代码大概是这样的。

年代:1985–1987年

事实证明,过分自信会杀死人

当真相显现时,头条新闻就现代化发出了警告。《洛杉矶时报》宣称:“复杂时代的软件故障会死人。”一种本来用于治疗癌症的机器由于在几家医疗机构对六名患者进行了过大剂量的放射,造成了至少三人死亡。

研究人员经过调查发现,Therac-25的程序允许致命错误的出现。本来这台机器提供的是低功率和高功率两种类型的治疗,而后者需要金属设备来过滤光束。但是由于软件存在的错误,操作员可以在没有合适的金属设备就绪的情况下意外触发高功率模式。

在设计上,Therac-25是Therac-20的“改进”版,而且这种软件被认为已经万无一失,因此不需要外部的安全检查。结果:重大死亡的责任要归咎于过度自信的工程师,因为他们没有对错误发生的可能性做出解释。——MollyOlmstead

年代:1988

在网上闲逛的起源

让人意识到互联网已经变得有多庞大的一盆冷水

这是莫里斯蠕虫代码关键功能的摘录。RobertMorris,计算机历史博物馆和ArialdoMartini提供

当时23岁的康奈尔大学研究生莫里斯Morris释放莫里斯蠕虫(MorrisWorm),发动了所谓的“互联网的首次重大攻击”时,罗伯特·莫里斯和互联网本身都还很年轻。当时接入互联网的6万台机器里面,大概有10%遭到了破坏,造成数百万美元的损失,并导致《纽约时报》首次刊出“互联网”这一词。即使是精通技术的人,对于这个蠕虫的影响范围如此之广也感到瞠目结舌。莫里斯说,他本意并不想造成如此大的伤害,他也因此成为根据《计算机欺诈和滥用法》被起诉的第一人。在被判处三年缓刑之后,他成为了著名的创业孵化器YCombinator的共同创始人以及麻省理工学院的计算机科学助理教授。——ElenaBotella

年代:大约1990年代

一行代码的威力,以及计算机总让人惊讶的脆弱性

不要在家里跑这行代码。提供者:ChrisNoessel

你在上面看到的是一种称为“叉路炸弹(forkbomb)”的病毒——只有一行代码。当然它的发作需要满足一些特定的条件(包括Unix操作系统版本要旧一点,易感染的那种)。在条件满足的情况下,如果你在Bash里面输入这条命令,它就会一遍又一遍地复制自身,直到把计算机中的所有可用内存耗尽,导致计算机崩溃。

这段代码的美丽之处不在于代码之小与危害之大的对比,而在于它用冒号作为函数名。大多数函数(可重复使用的代码行)的命名都是描述性的,比方说“Print”或“isThisEmailValid”,但是这并不是严格要求的规矩。大多数计算语言都不能用冒号作为函数名称,但是Bash就可以。

我最早见到这行代码要追溯到2002年,当时德国法兰克福的一家艺术博物馆AngewandteKunst博物馆正在展览。博物馆展览代码可是很罕见的的——ChrisNoessel

年代:1990

让我们把所有东西连接上任何东西(甚至是难以想象的东西)的工具

蒂姆·伯纳斯·李(TimBerners-Lee)引入超链接,世界从此改变了。超链接是一段让人人皆可遨游WWW的代码。将信息链接起来的概念并不算特别新颖,但超链接的新鲜之处在于,它把各种计算机系统约定的标点符号拼凑到了一起,统一成URL冒号双斜杠的格式,从而对任何现有的条目进行命名。尽管伯纳斯·李担心向后兼容性的问题,但超链接任何东西的概念令该想法永不过时。伯纳斯·李的超链接可以随意变成“马上购买”按钮,点赞拇指、转发推特等等。这些令人意想不到的用例应该能够提醒我们,当我们站在技术革命的风口浪尖时,最难预料到的就是接下来会发生的事情。——RStreet技术和创新总监CharlesDuan

年代:1992

永远改变了我们与摄影的关系

上述代码片段是离散余弦变换算法,JPEG背后的基石。

Nayuki项目

我们现在已经把相机装满照片视为理所当然。但是过去表示图像需要大量的数据。1992年,联合图像专家组(JointPhotographicExpertsGroup)发布了JPEG的标准规范,从而让图像文件变得更小。尽管当时也可以用其他的压缩格式,但JPEG之所以能成为世界标准,部分原因是它不用交版税。JPEG采用了有损压缩,在压缩过程当中可以消除图像里面人眼无法检测到的部分,比方说颜色的细微变化。有损压缩对于1992年引入的另一项发明MP3也至关重要.类似地,这种音频文件格式通过丢弃人耳无法检测到的数据而变得紧凑。——AaronMak,Slate

年代:1993

现代web的诞生

以上是2.7版代码的一部分。

美国国家超级计算机应用中心软件开发小组,用于XWindows系统的NCSAMosaic

以前的浏览器渲染处理得很笨拙,虽然文本呈现的效果很好,但是浏览图像却一定要单独打开窗口。MarcAndreessen领导的Mosaic黑客希望做出一个能让文字和图像一起呈现的浏览器。是他们让web变得我们熟悉的样子,就好像在看一本很酷的数字杂志或报纸一样。随着世界各地的网站管理员开始要求更多的标签来让网站看起来更酷,这也促使HTML标准的发展走上了快车道。(那时候框架似乎是个超酷的主意。)——CliveThompson

Facebook的PageView跟踪像素。

Facebook'sPageViewTrackingPixel.Facebook

年代:1994

一个对搜索等应用具有重大影响的微型工具

Slate自己的robot.txt

为维基百科铺平了道路

WikiWikiWeb的WikiBase,最后编辑于2000年6月13日

年代:90年代中期

互联网的灾祸

在新窗口打开特定URL的基本代码。

自从我向全世界释放了这头邪恶的野兽之后,我出过书,创办过公司,在大学教过人,但别人总会把我跟弹出窗口联系到一起。当本文发表时,我预计仍会收到仇恨的邮件——麻省理工学院公民媒体中心主任EthanZuckerman

年代:大约1995年

语言:Perl

以代码表现激进主义的最早例子之一

MunitionsT-Shirt主页

年代:1996

革新了我们知识的组织方式

Google创建的算法,上述实现由Wikipedia提供

在PageRank之前,搜索引擎是通过寻找我们的查询关键字是否跟文档里面的单词匹配来查找信息的。但LarryPageSergeyBrin提出了一个绝妙的主意:知识是社会化的,搜索也应如此。为此,他们创建了一种算法,PageRank,这个算法会根据网上有多少其他页面链接到某个网页来对该网页的突出程度进行排名。Google今天之所以如此强大,就因为这一个洞察。——CliveThompson

年代:1990年代中期

它让网站最平凡的元素也能酷炫起来。

RoyWhittle

DouglasEnglebart和BillEnglish在1960年代后期发明的鼠标改变了我们与计算机沟通的方式。尽管使用鼠标很直观,但当时的显示技术通常无法跟上鼠标的快速移动。操作系统开发人员于是添加了鼠标轨迹,也就是瞬时的阴影图像,显示出光标在之前的位置,从而更易于跟踪和查找。

在1990年代中期,GeoCities是第一个提供免费服务,让用户可以轻松创建自己的Web内容的公司。GeoCities所见即所得(WYSIWYG)的编辑器使得创建者可以轻松地拖拽内容,添加自定义的代码段,包括用于定制访问者看到的鼠标轨迹的代码。在GeoCities的网页上,你的光标可以留下童话般的灰尘、气泡或小小的万圣节蝙蝠的痕迹。这些绚丽的像素是一个时代的缩影,说明我们已经能够自己建立自己的“网络空间”——NikkiStevens,亚利桑那州立大学博士研究生

年代:1999

让大家在一个地方就能阅读《纽约时报》、Gizmodo以及GarfieldMinusGarfield。

维基百科

一个数学错误导致一项任务失败

1999年9月23日,NASA的科学家与价值1.25亿美元的火星气候轨道器失去了联系。经过调查,确定了失联的原因:一家承包商用英制单位给轨道器写了程序,但是NASA的软件用的却是公制。就因为两段代码之间简单的沟通错误,导致轨道器飞到了未知的地方。

年代:大约2000–2001年

开辟了无人机战争的先河。

年代:2002

为技术(和猫)在现实世界的移动建立了新途径

iRobot

你永远也不会忘记自己的第一台Roomba:我的大概是在17年前在一个朋友家。当它在房子里面嗡嗡地由着自己的性子转来转去时,我正坐在沙发上哈哈大笑。这是机器人革命的曙光,一场看起来很蠢但是又很认真的革命。(跟炸弹清理机器有着一样DNA的机器人正在数百万个家庭里面吸尘,这一点着实让人吃惊。)从那以后,别人再也难以复制它的成功。Roomba证明,尽管我们的注意力重心已经开始向硬件倾斜(比如波士顿动力怪异的膝盖向后弯、会开门的机器狗)上,但软件对于一件产品的广泛采用可能更为重要。阿西莫夫化的iRobot并没有创造出第一个真空吸尘机器人,但是Roomba成为一个必备的利基产品不是因为它吸尘效果好,而是因为它在房间里面的导航效果不错。就像成千上万的小猫视频可以证明那样,在现代计算时代,几乎没有什么东西能比看着Roomba撞到桌腿、转圈一周然后前进更令人满足的了。——LowenLiu,Slate

年代:约2003年

令手机网络成为可能的解决方案

“使用路径分集公平地最大化吞吐量的定向发射机多接收机系统”,美国专利第6444990号,2002年9月10日

任何时候在任何一个地方,手机的数量通常都要比基站数量多。如果不进行调解的话,所有的传输都会相互干扰并阻碍信息的可靠接收。因此,基站需要解决优先级问题:确保所有用户都能完成通话,同时还要考虑到在嘈杂环境的用户需要赋予更多资源才能得到同样服务质量这一点。解决方案?要在个体用户需求与网络整体性能之间进行折衷。比例公平调度可确保所有用户至少享有最低级别的服务,同时最大程度地提高总的网络吞吐量。这是通过将较低的优先级赋予预期需要更多资源的用户来实现的。仅三行代码就让全球所有的3G和4G无线网络正常工作。——LavVarshney

年代:2008年

激发大家对一种货币的信心的代码,没有它就没有这种货币

中本聪

不管你是比特币的布道者还是怀疑者,或者不大确定它是什么,你大概都知道这可是个大事物。比特币本身已经获得了数千亿美元的直接投资,但是也许更重要的是,其基础的技术原理,也就是区块链,似乎有着无穷无尽的应用,从确保民主选举到结束非自愿的性接触等等都在它的应用范围。

这一切始于2008年,当匿名的中本聪发表了一份白皮书,宣布要推出比特币。上述代码就是实现的一部分,这些代码的作用是计算出攻击者接管比特币区块链的可能性极小。这里的数学让世界相信,由不可靠的人组成的系统仍然可以信任,这为至少2777种其他加密货币的创建铺平了道路。——ElenaBotella

年代:2008年10月至2009年

把受感染的计算机变成恶意的机器人大军,同时又保护其他的一些计算机

这段代码是安全研究人员TillmannWerner和FelixLeder编写的,后来还进行了功能等效性测试,为的是理解和对抗Conficker蠕虫。

TillmannWerner和FelixLeder

十年前,感染Conficker的计算机数量多达1500万台。这是一种利用Windows操作系统的漏洞的病毒。这种病毒虽然令人恐惧,但也因为它的老辣而备受推崇:它会邀请每一台计算机加入到庞大的僵尸大军,等候命令下达,还会阻止受感染的计算机打开安全程序或下载可以清除病毒的补丁程序。其最早版本还有一个非常有趣且很能说明问题的怪癖:如果驻留在任何使用乌克兰键盘或乌克兰IP地址的系统就会自毁。多年后,对该病毒进行逆向工程的主管部门和研究人员得出结论,Conficker的开发者确实是乌克兰人,他们这样设计病毒是为了避免违反自己国家的法律。幸运的是,这些黑客一直都没有动用过那支僵尸大军来作恶,截至到2018年,估计仍有35万台计算机感染这种病毒,这提醒我们娴熟的程序员要想发动国际攻击,有选择地对用户造成破坏可以是多么的容易。——JaneC.Hu

年代:2009

它催生了监视经济。

2019年9月的Facebook.com网站

年代:2009年左右

默认开启安全通道来保护网站安全

Mozilla开发人员指南

HSTS还没有普及:估计只有11.1%的网站用到。但2015年春天,重要一刻降临,美国联邦政府和行业合作伙伴对19个政府领域实施HSTS,其中包括Whitehouse.gov,AIDS.gov和donotcall.gov。此后不久,所有联邦机构均要求采用该标准。——RustyD.Pickens,奥巴马政府白宫前代理新媒体总监

年代:2012年编写,2014年被发现

计算史上传播最广、危害最大的安全漏洞之一

来自NakedSecurity

2014年,安全研究人员在OpenSSL(一个非常受欢迎的开源库)中发现了一个漏洞,大约有三分之二的网站(包括DropBox,Twitter,Yahoo和GitHub)都用到它——用于在两台计算机之间进行在线通信。Heartbleed使得犯罪分子可以通过影响数百万台设备的缓冲区读取漏洞来窃取未加密的机密信息,包括凭据和加密密钥等。这让大家注意到了依靠开源软件来实现关键安全功能所带来的风险,以及识别已被使用多年的代码漏洞的挑战。从更积极的意义上来说,Heartbleed的发现也引发了迅速而有效的全球反应,包括在全球范围内进行的协调宣传和补救工作,其力度和广度均远远超出了以前针对早期漏洞的许多同类行动。-塔夫茨大学助理教授JosephineWolff

年代:2017年推出

软件错误,加上企业的贪婪,导致数百人丧生,以及大批飞机停飞。

2018年10月,狮航610航班起飞后不久就发生了一次似乎非常怪异的事故,然后坠入海中。波音向公众保证飞机是安全的,并表示需要进行更多的飞行员培训以及“软件升级”。但是仅仅四个月后,埃塞俄比亚航空的一名飞行员抬升机头的努力做了20次,但飞机的自动系统仍然把机头往下推。起飞后的几分钟内,机上所有人员均告死亡。作为对事故的响应,全球的民航当局这这一型号的飞机都停飞了。调查显示,坠机事故是因为737Max的设计引起的,尤其是鲜为人知,了解程度不高的软件,可能会强制飞机反复做俯冲动作。——技术史学家,《写入程序的不平等》作者MarHicks

THE END
1.算法演示在线网站(收藏自己用)数据结构墨笔夺魂https://www.cs.usfca.edu/~galles/visualization/Algorithms.html 墨笔夺魂 华为开发者空间https://huaweicloud.csdn.net/64df0c46dc60580edc772f40.html
2.Diagram)的动画演示,一种高效的空间分割算法。PP视频为您提供沃罗诺伊图(Voronoi Diagram)的动画演示,一种高效的空间分割算法。高清视频在线观看,沃罗诺伊图(Voronoi Diagram)的动画演示,一种高效的空间分割算法。主要内容:https://v.pptv.com/show/X0BY1DyiaElCzMZk.html
3.Python3实现对列表按元组指定列进行排序的方法分析pythonPS:这里再为大家推荐一款关于排序的演示工具供大家参考:在线动画演示插入/选择/冒泡/归并/希尔/快速排序算法过程工具: http://tools.jb51.net/aideddesign/paixu_ys更多关于Python相关内容感兴趣的读者可查看本站专题:《Python数据结构与算法教程》、《Python列表(list)操作技巧总结》、《Python编码操作技巧总结》、《https://www.jb51.net/article/153239.htm
4.算法的在线演示网站数据是宝推荐一个算法在线演示网站: https://www.cs.usfca.edu/~galles/visualization/Algorithms.html eg:红黑树、 AVL树等算法都可以直接在这个网站中演示https://www.cnblogs.com/axing-articles/p/11408488.html
5.2022年度陕西省重点研发计划项目申报指南目录考核指标:支持网络卫星节点规模不小于 1000;支持天基测控与地基测控联合利用;支持宽带、窄带等多种通信手段的综合利用;支持测控、数传联合任务的一体调度;突发测控任务平均响应时间分钟级;相比于利用传统优化工具的任务规划方式,规划时延降低 50%;建立面向大规模星座的网络化测控算法的仿真演示验证平台;申请发明专利 2 项http://www.kt180.com/html/sxs/9889.html
6.“数据结构与算法”线上线下混合式课程依托混合式教学平台,课程做到数据结构具象化、算法演示动态化、算法实现真实化的“三化”教学。引入国家一流课程的O J在线测试资源组织编程训练(既有平台题目也有自研题目),基于O J平台的“实时评判”、“实时反馈”,学生在多次编程“试错”中学习和进步,按照反馈刺激的理念“练出”能力;构建出一个由量变到质变的https://dsj.imut.edu.cn/info/1030/6734.htm
7.米振荣:涉互联网纠纷案件集中审理模式的探索和实践长宁法院互联网审判庭的在线庭审主要通过远程庭审系统,采用交互视频的方式进行,对视频画面全程录音录像,当事人可以通过远程视频连线的方式,陈述诉辩称,并通过在线演示功能展示证据,书记员在线同步制作庭审笔录,并在庭审后由当事人在线阅看。在线庭审自2018年3月上线运行以来,先后出台了《在线庭审当事人操作指南》、《在https://www.thepaper.cn/newsDetail_forward_3216850
8.可视化数据结构算法演示Basics Stack: Array Implementation Stack: Linked List Implementation Queues: Array Implementation Queues: Linked List Implementation Lists: Array Implementation (available injavaversion) Lists: Linked List Implementation (available injavaversion) Recursion https://www.cs.usfca.edu/~galles/visualization/Algorithms.html
9.天府科技云程序能够正常运行,运行过程稳定、流畅、高效,无明显错误;程序结构划分合理,代码编写规范,清晰易读;巧妙利用计算思维与算法,创造独特创意体验。 5.参赛作品的著作权归作者所有,使用权由作者与主办单位共享,主办单位有权出版、展示、宣传参赛作品。 (五)参赛步骤 https://www.tfkjy.cn/popularscience/kpActivity/activity-detail.html?id=207186212964
10.C#网络编程技术FastSocket实战项目演练腾讯云开发者社区本期课程阿笨给大家带来两个基于FastSocket通讯组件的实战项目演示实例:1、基于FastSocket开发的客户端和服务端聊天应用程序(ABenNET.FastSocket.AppChat)。2、基于FastSocket开发的在线客户端监控应用程序(ABenNET.FastSocket.AppMonitor)。如果您对本期的《C#网络编程技术FastSocket实战项目演练》课程感兴趣的话,那么请跟着https://cloud.tencent.com/developer/article/1344767
11.张西恒生成式人工智能对在线异步审理困境的疏解及限度而生成式人工智能嵌入在线异步审理,可以在增强司法的可及性、提升审理效率、优化诉讼参与主体表述的准确性等方面疏解在线异步审理与传统诉讼原理之间的紧张关系。但是,也应注意其在异步审理中的运用可能造成的负面影响,包括对司法人员的技术奴役将可能使司法人员庸化并丧失主体性;技术自身的算法伦理风险有可能使司法丧失公https://www.jfdaily.com/sgh/detail?id=1205126
12.高二数学教案在椭圆的定义的教学过程()中,可以提出“到两定点的距离的和为定值的点的轨迹一定是椭圆吗”,让学生通过课件演示“改变焦距或定值”,观察轨迹的形状,从而挖掘出定义的内涵,这样就使得学生对椭圆的定义留下了深刻的印象。 (5)注意椭圆的定义与椭圆的标准方程的联系https://www.fwsir.com/jiaoan/html/jiaoan_20221204150736_2117816.html
13.Hive编程指南本书是一本Apache Hive的编程指南,旨在介绍如何使用Hive的SQL方法——HiveQL来汇总、查询和分析存储在Hadoop分布式文件系统上的大数据集合。全书通过大量的实例,首先介绍如何在用户环境下安装和配置Hive,并对Hadoop和MapReduce进行详尽阐述,最终演示Hive如何在Hadoop生态系统进行工作。 https://www.epubit.com/bookDetails?id=N2832
14.2023年重大网络安全政策法规盘点根据《互联网信息服务深度合成管理规定》,国家互联网信息办公室公开发布境内深度合成服务算法备案信息,具体信息可通过互联网信息服务算法备案系统(https://beian近期,工信部组织第三方检测机构对群众关注的实用工具、在线影音等移动互联网应用程序APP及第三方软件开发工具包(SDK)进行检查。发现13款APP、SDK存在侵害用户权https://www.eet-china.com/mp/a273064.html
15.可视化算法algorithmvisualizerAlgorithm Visualizer is an interactive online platform that visualizes algorithms from code.http://algorithm-visualizer.org/
16.fpga虚拟结合在线实验平台冒泡排序算法可视化 在希冀 FPGA 在线实验平台上,学生基于Verilog使用数码管实现的冒泡排序算法可视化。在启动排序后,将在数码管上展示出每一轮迭代中相邻两个数的交换过程。 演奏新年好(支持音频) 该视频演示了 FPGA 在线实验平台对音频的支持。在下载比特流文件后,使用7个按键可以产生7种音调。基于7种音调可以演奏https://www.educg.net/fpga.html