算法(algorithm )是旨在实现某些结果的逐步过程,而计算机是有史以来执行逐步过程最快的机器!
这意味着算法的研究是计算机科学的核心目标,但在各行各业中你都能看见算法的身影。
生物学家设计算法来寻找基因序列中的合适片段,军事工程师设计算法来计算出炮弹降落的准确位置,火箭科学家设计算法引导自着陆火箭安全落地,机械工程师设计算法计算零件的各种参数等等。
在本课中,我们将从一些基础知识开始,你将知道:
1.人们用来向其他人传达指令的非正式算法。
2.计算机科学家用来处理算法的非正式语言“伪代码”。
即便你可能从未从事过任何算法、编程等,我们也肯定使用过算法进行交流与分析。
当你规划前往某个地方的行车路线、购物清单、以及作为铲屎官给猫狗准备食物的时候,你都在运用算法。
想象一下,你收养了一只猫猫(狗狗)。而你因为工作繁忙无力照顾它,所以你让一位朋友帮你喂养猫猫(狗狗)。
你的朋友欣然接受并要求你给出非常详细的喂养说明,就像这样:
1.查看它的饭盆
2.如果饭盆是空的,放入五勺猫粮(狗粮)
3.如果饭盆中残留有剩饭,放入三勺猫粮(狗粮)
问题:在朋友遵照你的指示加入猫粮(狗粮)后,饭盆里有4勺饭(此时你的宠物尚未开吃)。
你可以得到什么结论?
A.你的朋友看到饭盆是空的后开始加饭
B.你的朋友看见饭盆中残留有剩饭后开始加饭
C.不会
我们日常的交流、工作记录和电子游戏中的规则等都是执行某些任务的示例之一。
这些通常以文本形式描述,就像喂饭的说明一样。
然而,如果对任务与工作的描述变得很长、很复杂,就可能会导致歧义和混乱。
在依赖冗长而复杂的规则的领域中,人们通过引入专门的交流方式(即我们所说的术语)来应对混乱和复杂性。
以下是一位国际象棋棋手可能想要与另一位国际象棋棋手传达的信息:
“国际象棋第二步棋中,黑棋的王边马向前移动到象的前面”
大多数国际象棋爱好者都熟悉一种专门的交流方式,只需写下 Nf6 就可以紧凑而清晰地描述这句话。
这种国际象棋符号在行外人看来几乎毫无意义,但它是一种为人类交流而设计的语言。 (它不是计算机代码,也不用于下棋计算机程序的内部实现。)
答案:B
转载翻译课程:【编程扫盲】什么是算法:1. 生活处处有算法