什么是算法? - David J. Malan:英语精读讲义
TED-Ed
视频简介:视频通过逐步改进“数房间里有多少人”的方法,介绍算法的基本概念,并说明伪代码、循环、正确性、效率、边界情况测试、程序错误和条件分支之间的关系。 主要英语知识点: 1. algorithm — 词义与语域:理解该词在计算机科学中并非泛指普通“方法”,而是为解决问题而设计的一组明确步骤,从而能听懂技术讲解中程序如何被表示、逐步执行并得到结果。 2. corner case — 词义与语域:识别这个工程术语所指的异常或边界情况;这类情况可能暴露方案缺陷,因此可用它讨论程序、规则或解决方案在常规示例之外是否依然正确可靠。 3. only executes if — 语法与句型:掌握“只有满足指定条件才执行”的条件逻辑表达,用来准确说明某条指令或分支何时运行,以及程序流程、规则触发条件和例外处理方式。
本篇讲解
algorithm:解决问题的明确流程
algorithm 指一组用来解决问题的明确指令。它不只是大致的想法或技巧;人或计算机都可以按照这些步骤执行。 在本句中,step by step 强调这些指令构成一个有顺序的流程。循环和条件可以控制哪些步骤要重复或被选择。
练习
在本句中,algorithm 是什么意思?
- 任何与计算机有关的想法
- 一台进行计算的机器
- 用来解决问题的一组明确步骤
查看答案
用来解决问题的一组明确步骤
step by step:一步一步地进行
step by step 表示把一件事分成若干阶段,按照顺序一步一步进行。在本句中,它说明这些指令通过有序的流程来解决问题。 这里的 step 指流程中的一个“步骤”,不是实体的台阶。
练习
用表示“一步一步”的固定词组完成指令:To avoid mistakes, follow the checklist ____.
查看答案
step by step
句尾 as well 表示“也”
这里的 as well 表示“也”。它位于分句末尾;前文把算法和计算机联系起来之后,这个短语又把人类加入讨论:人类也有算法。 在这种用法中,要把 as well 当作一个表示补充的完整短语。这里的 well 不是“好”或“以好的方式”的意思。
练习
用表示“也”的目标短语完成句子:Nina wants to join the game, and Omar wants to join ____.
查看答案
as well
For instance, how would you go about counting the number of people in a room? 講解
0:26例如,你打算如何计算一个房间里的人数?
For instance:引出具体例子
For instance 告诉听者,接下来会出现一个具体例子。这里的讲解从“人类会使用算法”这个概括性观点,转到“统计房间里的人数”这个具体任务。 作为组织信息的短语,它帮助听者把例子与前面的概括性观点联系起来。它并不表示一件事在另一件事之后发生。
练习
For instance 在下面这段话中起什么作用?“Many materials can be recycled. For instance, clean glass jars can go in the recycling bin.”
- 它引出前面概括性观点的一个具体例子。
- 它表示时间顺序中的下一步。
- 它表示说话人正在纠正之前的错误。
查看答案
它引出前面概括性观点的一个具体例子。
go about counting:询问怎样着手完成任务
在 go about doing something 这个结构中,go about 表示以某种方式着手并处理一项任务。这里的 how would you go about counting 是在问你会用什么方法数人数,而不是问你会不会数数。 about 后面的动词要用 -ing 形式,如 go about counting、go about fixing。这个短语强调处理事情的方法或过程,不表示在一个地方到处走动。
练习
用 repair 的正确形式完成问题:How should we go about ____ the damaged chair?
查看答案
repairing
if you're like me:邀请听众产生共鸣
If you're like me 从字面上看是在设定“如果你和我相似”这个条件,但这里是友好的口语铺垫。说话人先提到自己的习惯,暗示听众也可能有同样的习惯。 这个表达能缓和说法:说话人没有断言每个人都会逐一指着数,而是说这是我会做的事,你可能也会这样做。它通常只比较当前话题中的某个习惯或偏好,不是在比较两个人的全部性格。
练习
判断这个用法:在轻松友好的演讲中,If you're like me 可以引出说话人自己的习惯,而不会声称每个人都这样做。
- 正确
- 错误
查看答案
正确
one at a time:每轮一个人或一件事
one at a time 表示每轮只处理一个人或一件事。在这句话中,它说明说话人如何指人:先指一个人,再指下一个,这样就能按顺序计数。 at a time 表示每轮处理的数量,并不是指钟表上的时间或某个特定时刻。
练习
老师希望孩子们逐个走到桌前,而不是一起过来。哪条指示最合适?
- Please come to my desk one at a time.
- Please come to my desk at one time.
- Please come to my desk one time.
查看答案
Please come to my desk one at a time.
count up:从较小的数字数到较大的数字
count up 表示按数值递增的顺序说出或记录数字,例如 0、1、2、3。在这句话中,计数从零开始,每计入一个人,数字就随之增加。 up 这个小品词赋予动词“数值增加”的方向,并不是指物体向上移动。
练习
用表示数字递增方向的小品词完成指示:Start at zero and count ____ to ten.
查看答案
up
and so forth:表示清楚的列表或规律继续
and so forth 告诉听者,列表或规律还会按同类内容继续。说到“1、2、3、4”后,接下来的数字很容易推知,所以说话人不再逐个说出。 要把它作为一个用于列表结尾的整体表达来理解,意思是“还有同类内容继续”,而不是按 forth 表示方向的字面义理解。它和 and so on 意思接近。
练习
在“The club offers chess, music, painting, and so forth”中,and so forth 表示什么?
- 后面还有更多同类项目。
- 列出的项目都是错误的。
- 这个列表已经转到一个新话题。
查看答案
后面还有更多同类项目。
a bit more formally:稍微提高正式程度
a bit more formally 表示“以稍微更正式的方式”。more formally 说明要怎样表达这个想法,a bit 则限制变化的程度,表示只改变一点。 这里说话人正从日常描述转向伪代码。这个短语让这种转换听起来幅度不大,而不是要彻底改变表达风格。
练习
用本课中表示“以稍微更正式的方式”的短语完成句子:Could you state the rule ____?
查看答案
a bit more formally
pseudocode:不用可执行代码描述算法逻辑
pseudocode(伪代码)是一种非正式、便于人阅读的算法描述方式,用来说明算法的步骤和逻辑。它往往看起来像编程语言,但不必遵守某一种语言的精确语法。 在本句中,in pseudocode 说明这个想法将以什么形式表达。后面的英语式指令是为了把算法讲清楚,不一定能由计算机直接运行。
练习
关于 pseudocode,哪一项说法正确?
- 它是必须严格遵守某种编程语言规则的 source code。
- 它以类似代码的形式描述算法,但不一定能直接执行。
- 它是程序运行时发现的错误列表。
查看答案
它以类似代码的形式描述算法,但不一定能直接执行。
Let n equal zero:设置变量的初始值
在数学和伪代码中,Let n equal zero. 的意思是“定义或设置 n 的值为 0”。它先给 n 设定初始值,后面的步骤再使用或改变 n。 这里的 let 用来引入定义或假设,不表示“允许”。结构是 Let + variable + equal + value,而且在 let 后面要用 equal 的原形。
练习
使用 Let ... equal ... 结构补全这条伪代码指令:____ total ____ zero before counting.
查看答案
Let · equal
For each person in room:伪代码循环
For each ... 引出一个循环:后面的指令会对集合中的每个成员执行一次。这里的 person in room 指明要处理的集合,因此每个人都会触发后续步骤。 在普通英文中,通常会说 for each person in the room。伪代码为了让指令简短,常会省略 the 这类小词。
练习
在这段伪代码中,For each person in room 表示要做什么?
- 只对房间里的第一个人执行后续指令
- 为每个人准备一个房间
- 对房间里的每个人执行一次后续指令
查看答案
对房间里的每个人执行一次后续指令
set n = n + 1:更新变量
在伪代码中,set 表示给变量赋值。先用 n 当前的值计算 n + 1,再把结果存回 n。每执行一次这条指令,n 就增加 1。 这里的等号是赋值指令的一部分,不是在断言 n 在数学上始终等于 n + 1。
练习
伪代码 set n = n + 1 执行一次后会发生什么?
- n 当前的值增加 1
- n 的值被删除
- 程序检查 n 是否等于 n + 1
查看答案
n 当前的值增加 1
How to interpret ...?:标题式提问
在这句话中,How to interpret this pseudocode? 是一个标题式问题。它把讲解从展示伪代码推进到说明每一行是什么意思。 how to + 动词原形表示做某事的方法。这里是完整直接问句 How should we interpret this pseudocode? 的简略形式,主要作用是组织接下来的讲解。
练习
判断正误:在教程中,How to interpret this pseudocode? 可以像标题一样用作过渡,引出后面的解释。
- 正确
- 错误
查看答案
正确
so to speak:标记近似或比喻性说法
so to speak 是插入语,意思是“如果可以这样说”。这里它缓和了 declares:说话人借用了一个有用的技术说法,而不是坚持这就是唯一完全精确的描述。 它提醒听者把这个措辞理解为近似或比喻,而不是把它当成让人真的开口说话的指令。
练习
用表示 second home 是非字面描述的三个词表达完成句子:After so many late nights there, the library became our second home, ____.
查看答案
so to speak
编程中的 declares ... initializes its value to zero
在编程说明中,declares a variable 表示把变量引入代码或伪代码,通常会确定它的名称,有时还会确定类型。这里的变量名是 n。 initializes its value to zero 表示给这个变量设置起始值 0。声明和初始化是两个不同的动作,即使同一行可以同时完成它们。
练习
请把 declare 和 initialize 变成正确形式来完成句子:The first line ____ a variable named total and ____ it to zero.
查看答案
declares · initializes
with which we're counting:介词前置的正式关系从句
with which we're counting 是修饰 the thing 的关系从句。which 回指 the thing,with 表明它是用于计数的工具,即“我们用来计数的东西”。 把介词放在 which 前面会形成较正式的“介词 + which”结构。在本句中,the thing 指变量 n;它是计数器,而不是被数的对象。
练习
用指代事物的关系代词完成这个正式关系从句:The camera with ____ we filmed the birds was very light.
查看答案
which
After all:补充支持前文的理由
After all 引出一个支持或解释前一句话的理由。这里它表明,把零作为计数起点很合理,因为数数还没有开始。 它先给出判断或结论,再提醒听者注意理由,从而组织信息。在这里,它大致表示“别忘了这个事实”,而不是时间顺序上的“所有事情之后”。
练习
哪一句使用 after all 补充一个支持前文的理由?
- We checked the map after all the visitors left.
- We should check the map; after all, this is our first visit.
- After all the work, we went home.
查看答案
We should check the map; after all, this is our first visit.
haven't counted anything yet:截至现在还没有数
Haven't counted 是现在完成时的否定形式:have not + 过去分词。它表示从过去到当前时点,数数这件事一直没有发生,所以现在的计数仍然是零。 在否定句中,anything 表示没有数任何东西。句尾的 yet 表示截至现在这件事仍未完成,通常也暗示以后可能会发生。
练习
用缩写形式 haven't ... yet 完成句子,表示截至现在还没有进行任何测试:We ____ run any tests ____.
查看答案
haven't · yet
just a convention:常见做法,并非硬性规则
在这个技术语境中,convention 指大家通常采用的共同做法,不是“会议”,也不是硬性要求。just a convention 表示把变量命名为 n 是常见选择,但换成其他有效名称也可以。 说惯例是可选的,是指编程语言并未强制这样做;不过,遵循惯例仍能让其他人更容易读懂代码。
练习
这句话中的 just a convention 是什么意思?
- 这是一种常见做法,但也可以使用其他有效名称。
- 这是所有程序都必须遵守的规则。
- 这是一场讨论变量名称的正式会议。
查看答案
这是一种常见做法,但也可以使用其他有效名称。
could have called it:过去本可以这样命名,但没有采用
Could have called it 使用 could have + 过去分词来回顾过去一个没有采用的选择。说话人当时可以选择另一个名字,但实际选择了 n。 这里的 called 表示“给……取名”,结构是 call + 宾语 + 名称。have 把这种可能性放在过去;could call it 通常表示现在或未来可以这样命名。
练习
使用 could 和 call 补全句子,表示过去有一个未采用的命名选择:We ____ something else, but we chose Horizon.
查看答案
could have called it
loop:程序中重复执行的步骤序列
在编程中,loop 指“循环”,也就是让一系列步骤反复运行的结构。loop 后面的短语直接解释了它:这些步骤会重复若干次。 这里的 loop 描述的是程序流程,不只是圆形。看到代码或伪代码中的 loop 时,要找出哪些指令属于会重复执行的代码块。
练习
在编程讲解中,句子“The loop checks every message in the inbox”里的 loop 是什么意思?
- 只能运行一次的单条指令
- 屏幕上的圆形图像
- 重复执行一组指令的结构
查看答案
重复执行一组指令的结构
So, in our example, the step we're taking is counting people in the room.
1:17所以,在我们的例子中,我们采取的步骤是数房间里的人。
The indentation implies:格式显示代码结构
indentation 指行首把一行内容向右移开的空白,也就是“缩进”。在代码或伪代码中,这种间距可以表示哪些指令属于同一个代码块。 The indentation implies that... 表示这种格式为后面的结论提供了线索。这里,缩进说明第三行位于循环内部,所以第三行才是会重复执行的部分。
练习
在代码讲解“The indentation implies that the message is part of the loop”中,The indentation implies 是什么意思?
- 间距表明消息中有错误。
- 间距使程序显示这条消息。
- 间距为代码结构提供了线索。
查看答案
间距为代码结构提供了线索。
what the pseudocode is saying is that...:解释伪代码的意思
What X is saying is that... 这个框架可以把 X 中的信息改写成通俗的解释。这里的 saying 表示“表达、意思是”,不是说某个事物真的在讲话。 what 从句先指出要解读的信息来源,is that 再引出具体解释。这样可以把信息来源和后面的解释清楚地区分开。
练习
使用 What X is saying is that... 框架补全这句解释:____ every visitor must sign in.
查看答案
What the notice is saying is that
after starting at zero:用 after + -ing 表示步骤顺序
after starting at zero 使用 after + -ing 表示一个步骤先于下一个步骤发生。在本句中,我们先让计数从零开始,然后再增加 n。 starting 是介词 after 后使用的 -ing 形式,不是现在进行时的主要谓语。这种简短结构常见于流程说明和操作指令。
练习
使用 after + -ing 短语表示检查先发生:____, click Submit.
查看答案
After checking the address
increase n by one:by 表示变化幅度
在 increase n by one 中,n 是被改变的数值,by one 表示变化的幅度。要在当前值上加 1;by one 并不是说最终值是 1。 可迁移的结构是 increase + 数值 + by + 幅度。例如,n 原来是 4,增加一之后就是 5。
练习
一个计数器从 7 变为 8。请用 by 和英文数字单词补全句子:Increase the counter ____.
查看答案
by one
bang on it a bit:非正式地动手测试
这里的 bang on it a bit 是技术讨论中的非正式比喻,表示用几个不同情况试一试某个系统或想法,看看它是否会出问题,并不是真的动手敲打。 这个说法给人的感觉是对它施加一些压力,而不只是静态地查看。不过在其他语境中,bang on it 可能确实表示反复敲打,因此这里的“测试”含义来自技术讨论的上下文。
练习
在软件讨论中,"Let's bang on it a bit" 最可能是什么意思?
- 用几个不同情况测试一下它。
- 反复敲打电脑。
- 停止处理它。
查看答案
用几个不同情况测试一下它。
Does it work if ...?:测试一个条件
Does it work if ...? 用来询问某个方法、系统或方案在 if 后面的条件下是否仍然有效。这里的 it 指前面提到的算法,work 表示“按预期发挥作用”或“有效”,不是“做工作”。 可以用 Does it work if + 条件? 来检验假设,或确认一个解决方案在什么情况下会失效。
练习
设计者想测试智能门锁在停电时是否仍能使用。哪个问题表达了这个意思?
- Does it work if the power goes out?
- Does it work because the power goes out?
- Does it work, so the power goes out?
查看答案
Does it work if the power goes out?
increment n by one:把变量加 1
Increment 是技术语境中的动词,意思是“让一个数值按指定幅度增加”。在 increment n by one 中,n 是被改变的值,by one 表示变化量:新值等于原值加 1。 本句描述的是重复更新:每处理一个人,就给 n 加 1。可迁移的结构是 increment + 数值 + by + 增量。
练习
用表示变化量的介词完成这条技术指令:Increment the retry count ____ one after each failed attempt.
查看答案
by
So, on the first trip through the loop, we update n from zero to one. 習語
1:49所以,在第一次循环时,我们将 n 从零更新为一。
trip through the loop:一次循环迭代
在这句话中,a trip through the loop 指循环体执行一次,也就是一次迭代。the first trip 是循环内的步骤第一次运行。 trip 用路径来比喻抽象的程序流程。可以想象进入循环、把里面的步骤走一遍再出来;每完整走一遍,就是 one trip through the loop。
练习
用高亮的非正式技术表达补全句子:On the second ____, the program removes one duplicate.
查看答案
trip through the loop
On the second trip through that same loop, we update n from one to two.
1:52在第二次同一次循环中,我们将 n 从一更新为二。
by this algorithm's end:截止点上的结果
这里的 by this algorithm's end 意思是“到这个算法完成时”。by 标记一个截止点:到达这个时间点时,n 已经变成二。这里的 by 不是“使用这个算法”。 this algorithm's end 是 the end of this algorithm 的所有格表达。by + 截止点 适合说明某个结果不晚于该时间点已经完成或成立。
练习
哪句话表示报告必须不晚于下午 5 点完成?
- The report must be finished by 5 p.m.
- The report must be worked on through 5 p.m.
- The report must be finished at 5 p.m.
查看答案
The report must be finished by 5 p.m.
which indeed matches:确认前面的结果
这里,which 引出一个补充说明的关系从句,指代前面的整个结果 n is two,而不是 people 或 the room。这个从句补上一项核对:该结果与实际人数一致。 indeed 加强确认语气。因此,which indeed matches... 可用于先给出一个结果,再把它与数据、预期或现实事实进行核对。
练习
在例句中,which 指代什么?
- 房间
- 前面的结果 n is two
- people 这个词
查看答案
前面的结果 n is two
So far, so good:积极但暂时的进展判断
So far, so good. 是一个固定表达,意思是事情到目前为止进展顺利。它对当前进展作出正面判断,同时不排除之后可能出现变化。 这里说话人是在总结一个阶段性结果,并不是宣布最终成功。应把整句话作为一个固定表达来理解,不要认为两个 so 的意思和作用完全相同。
练习
判断:So far, so good. 表示整个任务已经完成,而且肯定会成功。
- 错误
- 正确
查看答案
错误
corner case:不常见的测试条件
在技术讨论中,corner case 指可能暴露系统在正常使用中不会出现的问题的不常见条件或输入。 这里把“零个人”选作这种特殊测试条件。这个短语不是指实际的角落;它表示要用极端或少见的输入,测试计数方法是否仍然有效。
练习
在软件测试中,哪种情况最适合称为 corner case?
- 测试列表包含零个项目时会发生什么
- 用有效账户测试通常的登录流程
- 为登录按钮选择一种新颜色
查看答案
测试列表包含零个项目时会发生什么
Suppose that:设定一个假设条件
Suppose that 用来引入一个条件,并在接下来的讨论、计算或测试中暂时把它当作真的。它是在为推理设定起点,并不是说说话人猜这个条件可能是真的。 结构是 Suppose that + 从句。that 可以省略:Suppose there are zero people 的意思相同。
练习
使用 Suppose that 设定这个假设测试条件:____ the phone has no saved contacts. What should the app display?
查看答案
Suppose that
doesn't execute at all:代码一次也不运行
这里,execute 是编程动词,表示“运行”或“执行”一行代码。Line three doesn't execute 表示程序流程从未到达并运行第三行。 at all 加强了 doesn't 的否定语气。这个短语表示该行一次也没有运行,而不是运行了但结果错误。
练习
在编程讨论中,“The line doesn't execute at all”是什么意思?
- 这一行一次也没有运行。
- 这一行运行了,但速度很慢。
- 这一行运行了,但行为或结果不正确。
查看答案
这一行一次也没有运行。
Pretty simple, right?:轻松地寻求确认
这里的 pretty 表示“相当、挺”,所以 pretty simple 是说这个想法似乎很容易理解。pretty 在这里不是“漂亮”的意思。 句尾的简短问句 right? 用来轻松地寻求确认:说话人邀请听者表示同意或表明自己跟上了。在轻松的讲解中,它是一种快速互动确认,并不是在询问方向或权利。
练习
在 “Pretty simple, right?” 中,“right?” 的主要功能是什么?
- 它轻松地请听者确认,或表示自己已经跟上。
- 它正式证明这项任务很简单。
- 它让听者朝某个方向移动。
查看答案
它轻松地请听者确认,或表示自己已经跟上。
Surely we can do better:转向改进的过渡句
Surely we can do better 不只是表达信心。它还在论证:目前的方法不够好,应该能找到改进办法。 作为过渡句,它把讨论从指出低效的方法推进到寻找更好的方案。Surely 把这个判断说成合情合理的,并期待听者认同。
练习
在演讲中,Surely we can do better 主要起什么作用?
- 它表示当前做法很可能还能改进。
- 它表示当前做法已经是最好的选择。
- 它要求听众解释这个做法为什么失败。
查看答案
它表示当前做法很可能还能改进。
Why not count:用 Why not + 动词原形提出建议
Why not count...? 使用 Why not + 动词原形来提出建议。这里说话人是在建议一次数两个人,并不是主要想让对方解释原因。 疑问句形式给讨论留下了空间:如果这个想法行不通,对方仍然可以说明实际原因。
练习
用 try 补全这个建议:Why not ____ the simpler method?
查看答案
try
Instead of counting ... why not count:提出替代做法
Instead of doing X, why not do Y? 这个框架把原来的做法和建议的替代做法放在一起。这里,X 是一个一个地数,Y 是两个两个地数。 instead of 后面接名词或 -ing 形式,所以这里用 counting。why not 后面接动词原形,所以这里用 count。这个框架可以用来建议换一种方法。
练习
把 check 和 use 变成正确形式,完成这个建议句:Instead of ____ every email one by one, why not ____ a filter?
查看答案
checking · use
optimization:有明确效率目标的优化
在这个句子中,optimization 指一种让计数方法更高效的具体改动:从一次处理一个人改为一次处理两个人。 在技术语境中,optimization 是为了实现某个目标而改进算法、程序或流程,例如提高速度、减少内存使用或减少工作量。它指有目的的改进,而不是笼统地说某件事变好了。
练习
在讨论如何让程序运行得更快时,optimization 最可能是什么意思?
- 把代码翻译成另一种语言
- 让系统效率更高的一项具体改动
- 列出所有可能出现的错误
查看答案
让系统效率更高的一项具体改动
twice as fast as:速度正好是两倍
twice as fast as 表示一个事物的速度是比较对象的两倍。这里比较的是这个算法和上一个算法的速度。 结构是“倍数 + as + 形容词或副词 + as + 比较对象”。在 twice as fast as the last 中,twice 表示倍数,fast 表示比较的性质,第二个 as 引出比较对象。
练习
补全倍数比较中缺少的两个词:The new scanner is twice ____ fast ____ the old one.
查看答案
as · as
As before:连接到前面相同的情况
As before 表示“和前面的情况一样”。它指回已经讲过的信息,告诉听者当前情况遵循同样的模式。 这里它用来组织说明:第三行仍然不会执行,和前面的情况相同。这里的 As 表示相似,不表示原因。
练习
这里的 As before 起什么作用?The first test had no errors. As before, the second test finished without any errors.
- 它表示稍后还会再次进行测试。
- 它说明测试没有错误的原因。
- 它把这次结果和前一个案例中的相同结果联系起来。
查看答案
它把这次结果和前一个案例中的相同结果联系起来。
用 What if there are ...? 检验一种可能情况
在这句话中,What if 引入一种假设情况:假设房间里有三个人。说话人不是在确认房间目前有多少人,而是在问这种条件下该方法会得出什么结果。 there are 在这个假设中构成表示“有某些人或事物存在”的部分。这个结构可以用来检验:改变一个条件后,前面的结论、计划或流程是否仍然成立。
练习
用本课标出的四词结构完成问句:____ five passengers in the car?
查看答案
What if there are
用 But then what? 指出缺失的下一步
But 表示从前一步转折,then 指向流程中的下一阶段或结果。what 代替了更完整的问题,如 What happens next? 或 What do we do next? But then what? 作为一个独立的短问句,会打断当前说明并暴露缺口:虽然已经讲了一步,但流程还没有完成。它通过追问缺失的下一步来推动推理。
练习
在流程讲解中,But then what? 通常起什么作用?
- 回到一个无关的过去事件。
- 宣布所有步骤都已完成。
- 指出流程走到了一个尚未解决的下一步。
查看答案
指出流程走到了一个尚未解决的下一步。
no longer applies:规则不再适用
本句中,no longer applies 表示第二行原先适合这种情况,但现在所需条件已经不存在,所以不再适用。apply 在这里是“对某种情况适用或有效”,不是“提出申请”。 no longer + 动词 表示从“以前成立”变成“现在不成立”。规则、条件、说明或折扣作主语时,apply 表示它们适用于某种情况。
练习
哪种情况最适合用 The rule no longer applies 来描述?
- 有人正在申请制定一条新规则。
- 这条规则以前适用于该情况,但某个变化使它现在不再相关。
- 这条规则从来没有适用于该情况。
查看答案
这条规则以前适用于该情况,但某个变化使它现在不再相关。
buggy:含有缺陷的软件或算法
在技术讨论中,buggy 是形容词,表示软件、算法或功能含有 bug,可能给出错误结果或运行不稳定。本句用它形容一个存在错误的算法。 buggy 比单纯说 wrong 更具体:它指技术系统的设计或实现中有缺陷。这里的 bug 是软件或工程缺陷,不是昆虫。
练习
在技术语境中,哪句话自然地使用了 buggy?
- The new app is still buggy and sometimes crashes.
- This pencil is buggy because it needs sharpening.
- The developer is buggy because she made a typo.
查看答案
The new app is still buggy and sometimes crashes.
redress:正式表示纠正或补救问题
这里的 redress 表示“纠正或补救问题”。说话人正从指出算法中的缺陷转向尝试用新的伪代码修复它。 这个词强调把错误的状况纠正过来;在这里与衣服无关。
练习
在例句中,redress 是什么意思?
- 换上不同的衣服
- 纠正或补救问题
- 用红色写代码
查看答案
纠正或补救问题
that only executes if there's one person we could not pair with another. 語法
4:08只有当有一个人无法与别人配对时才会执行。
a condition, otherwise known as a branch:两个控制流术语
在这段程序讲解中,condition 是决定某段代码是否运行的真/假测试,而 branch 是根据测试结果选择的代码路径或代码块。otherwise known as 在这里把 branch 作为对正在讨论的条件部分的另一种称呼引出来。 这种说法并不完全严谨:condition 是测试,branch 是程序针对某个结果执行的内容。这里,只有当有一个人仍未配对时,相关的 branch 才会运行。
练习
哪一项最准确地说明了 condition 和 branch?
- branch 是真/假测试;condition 是根据结果选择的代码路径。
- condition 是真/假测试;branch 是根据结果选择的代码路径。
- condition 是注释;branch 是文件名。
查看答案
condition 是真/假测试;branch 是根据结果选择的代码路径。
only executes if:说明必需的触发条件
在 only executes if... 中,only 限定的是执行条件:只有 if 从句中的条件成立,动作才可能运行;条件不成立时就不能运行。它不是说这个动作只执行一次。 这个结构把 if 从句作为代码、命令或自动化步骤执行所必需的触发条件。
练习
使用 only executes if 补全条件句:The shutdown command ____ the temperature rises above 40 degrees.
查看答案
only executes if
whether there's one or three or any odd number:涵盖所有情况
在 whether there's one or three or any odd number... 中,whether 引出多种可能情况,每个 or 再加入一种情况。主句说明这些情况下的结果都相同:算法能统计所有奇数人数的情况。 这里的 whether 不是在提出一般疑问。one 和 three 是例子,any odd number 则把范围扩展到整个奇数类别;整体意思是“不论实际属于哪种情况”。
练习
这里的 whether there's one or three or any odd number 是什么意思?
- 算法只在人数恰好为一人或三人时统计。
- 说话人正在询问房间里有多少人。
- 算法能统计所有奇数人数的情况。
查看答案
算法能统计所有奇数人数的情况。
count in threes or fours:按三或四为单位数数
count in threes or fours 表示“按三个或四个为一组或步长来数”。例如,按三来数会得到 3、6、9、12。 结构是 count in + 复数数字词,如 count in twos、count in fives、count in tens。这里的 in 表示每组的数量或每次计数的步长,不表示地点。
练习
请用 in + 复数数字词补全句子,使计数每次增加三:Let's count ____: three, six, nine, twelve.
查看答案
in threes
beyond that:超过刚才提到的限制
在本句中,beyond that 表示“超过刚才提到的范围或限制”。that 回指前面讨论的较大计数步长,beyond 则表示如果再往上增加,用手指点数会更困难。 beyond 不只表示物理空间。可迁移的 beyond that 常表示“如果超过那个数字、程度、阶段或限制”。
练习
在句子 “The first ten pages are easy, but beyond that the material gets harder,” 中,beyond that 是什么意思?
- 书的后面
- 前十页之后
- 还没到第十页
查看答案
前十页之后
get a little bit difficult to point:变得有点难以指认
这里的 get 表示“变得”:原本还容易做的动作后来更难了。a little bit 缓和了 difficult 的程度,所以意思是“有点难”,不是“完全做不到”。 to point 这个不定式说明变难的是哪一个动作。在本句中,point 是动词,表示“用手指逐一指认”,不是表示“观点”或“分数”的名词。
练习
用表示“变得有点难以……”的目标短语补全句子:When the directions include too many steps, they ____ follow.
查看答案
get a little bit difficult to
At the end of the day:引出最终结论
At the end of the day 是习语,意思是“把所有细节都考虑过后”或“归根结底”。它表示说话人要从补充细节转到主要结论,并不是指傍晚的某个时间。 这里,它把后面的内容标记为需要记住的核心定义:无论由电脑还是人来执行,算法都是解决问题的指令。
练习
用引出实际最终结论的习语补全句子:____, the team needs a plan everyone can follow.
查看答案
At the end of the day
whether executed by computers or humans:精简的被动 whether 分句
完整形式是 whether algorithms are executed by computers or humans。这里省略了重复的主语 algorithms 和被动结构所需的 be 动词,因为可以从主句中补出来。 这个精简分句添加了一个条件,表示两种执行者中无论是哪一种都不影响结论。它修饰 algorithms,并为主句作铺垫;它不是另一个主句。
练习
哪一个完整分句最准确地展开了例句中的 whether executed by computers or humans?
- whether they are executed by computers or humans
- whether computers are executed by humans
- whether they execute computers or humans
查看答案
whether they are executed by computers or humans
with which to solve problems:正式表达所用手段
with which to solve problems 修饰 a set of instructions。which 回指这组指令,with 表明这些指令是解决问题时使用的手段。 “名词 + 介词 + which + to 不定式”是一种简洁、正式的结构,用来表达某物可能的用途。这里表示“某人可以用来解决问题的一组指令”;并不是说 instructions 在语法上是 solve 的执行者。
练习
哪一个选项最准确地改述了 a set of instructions with which to solve problems?
- a set of instructions that solve every problem by themselves
- a set of instructions that someone must solve
- a set of instructions that someone can use to solve problems
查看答案
a set of instructions that someone can use to solve problems
What problem would you solve...?:邀请对方设想一种选择
What problem would you solve...? 是一个开放式问题,邀请听者设想一种可能的选择,并把某个概念联系到自己的情境。它不要求唯一答案。 这里的 would 建立了一个假设性选择:如果你可以使用算法,你会选择解决哪个问题?在这个问题中,它不表示过去。
练习
在 What problem would you solve with an algorithm? 中,would 的主要作用是什么?
- 命令听者解决某个特定问题。
- 询问一个过去已经解决的问题。
- 邀请听者设想一种可能的选择。
查看答案
邀请听者设想一种可能的选择。