跳过主要导航

什么是算法?

观看詹姆斯·罗宾逊(James Robinson)介绍算法的概念,并解释它们与程序的关系以及为什么如此重要。
3.2
您好,欢迎参加课程的第二周。上周,您查看了功能的使用以及如何使用它们来构建可重复使用的代码块。您还查看了如何将输入和输出作为参数和返回值包含。本周,您将通过“算法”一词了解程序员的意思,以及它们与我们编写的程序的关系。您还将有机会扩展您的Python技能来创建和操纵列表。您将使用这些新技能将算法从普通英语转换为程序。那么什么是算法?可以简单地将算法定义为精确描述活动的一组指令。
46.8
每天都在我们周围使用算法,以完成各种任务,从找到从A到B的路线,搜索Internet查看最合适的页面,甚至只是根据您过去的观看来推荐电影。要被称为算法,而不仅仅是一组指令,它必须足够精确且明确,没有任何解释。必须重复使用算法,基于相同的输入产生可预测的结果。我们可以代表各种形式的算法,包括自然语言,伪代码,流程图或符号。术语“算法”和“程序”通常会感到困惑。尽管两者相关,但它们的含义不同。
94.4
一种算法描述了如何完成特定任务供任何演员执行人类或计算机。程序是相同的算法,但实施了特定计算机以用该计算机理解的语言编写的特定计算机执行。例如,可以将平方绘图算法作为程序实现,它要么在Python中刮擦乌龟模型,甚至可以使用地板机器人(如此)。
125.2
算法的真正有趣的方面之一是,对于任何给定的问题,都有许多解决方案。无论它们是简单,优雅,快速还是效率低下,只要它们产生所需的输出,它们都是有效的。因此,在一群学习者中,完全有可能从每个学习者中获得不同但正确的算法。学生喜欢正确。因此,承认其解决方案的有效性很重要。根据使用的位置,算法的性能可能会产生重大影响。并且可以通过不同的方式进行比较。SAT NAV的路线找到算法需要快速找到合适的路线。因此,速度很重要。
166.7
控制自动驾驶汽车行为的算法也需要迅速对变化的情况做出反应。但是,他们也在做出生死决策,因此需要进行健壮和测试。每次搜索Internet时,都会使用算法来对该搜索的最相关页面进行排名。用户关心搜索结果的速度和准确性。算法确实无处不在。我们已经解决了许多使用它们的问题。但是,仍然有工作要做。作为一个社会,我们正在发现科学,医学,艺术,政治和人工智能方面的新问题 - 所有这些都需要尚未发明的新算法。现在轮到你了。
211.5
编写一种简单的算法来绘制2D形状,例如五角形或星星。在评论中分享它,看看您是否可以从其他学习者的算法中锻炼出来,形状是什么。祝你好运。

程序员使用功能来构建可重复使用的代码块并管理复杂性。在本文中,我们将讨论程序员按期的含义算法,以及算法与我们编写的程序的关系。将有机会编写一些普通的英语算法,然后使用您的列表技能将这些算法转变为程序。您还可以通过学习创建和操纵列表来扩展Python技能。

算法

One of the challenges associated with learning (and teaching) computer science is the additional vocabulary it introduces, either complex terms for simple enough ideas (algorithm, decomposition, abstraction), or terms that have specific meanings in other areas of learning (‘variable’ means something subtly different in maths, science and computer science). Whilst it is important that learners understand terminology, more important is their grasp of the concept or idea in question.

可以简单地定义算法:

  • 算法是一组指令恰恰描述一种活动。
  • 指令应使任何“演员”都可以遵循以产生相同的输出。
  • “演员”是指能够计算的任何东西,无论是人类还是计算机。

我们周围每天都使用算法来完成各种事情,例如找到从A到B的路线,搜索互联网查看最合适的页面,或者根据您过去的观看来推荐电影。

虽然我们可以用单词代替指示为了算法,有一些算法的重要特征使它们与众不同。算法:

  • 必须充分精确和不兼容:实施算法的行为者必须清楚每个步骤。
  • 必须是可重复的,基于相同的输入产生可预测的结果。
  • 可以以各种形式表示,包括自然语言,伪代码,流程图或符号。

平方英语,伪代码和流程图形式表示的方形图算法。

算法和程序

期限算法经常与程序。尽管两者相关,但它们的含义不同。一种算法描述了如何完成特定任务以供任何参与者执行,而程序是相同的算法,以供计算机按照给定编程语言的规则执行和书写。

例如,下面的方形绘制算法可以使用cratch的笔工具实现Python甚至是地板机器人的模块。

代码代表上述算法中的划痕块和python,以及一个地板机器人。划痕是:

一个问题,多个解决方案

算法的真正有趣的方面之一是,对于任何给定的问题,都有许多解决方案。无论它们是简单,优雅,快速还是效率低下,只要它们产生所需的输出,它们都是有效的。

在一组学习者中,完全有可能获得不同但正确的算法。在这一点上,重要的是要承认它们的正确性,同时也鼓励对话并比较每种方法的优点。正是这种高阶思维需要,以评估“最佳”方法,同时意识到替代方案。

为什么算法如此重要?

根据使用的位置,您的算法的性能会对它的有用产生重大影响。在不同情况下,算法性能的不同方面很重要:

  • 生成路线的算法将遵循SAT-NAV系统,可以从A到B的许多不同路线中进行选择。对于用户体验很重要的是,他们被推荐最佳路线:用户对一条比必要时间长一个小时的路线不会感到满意。但是,只要他们到达目的地,用户的旅程就需要更长的时间,就不太可能过多地关心。
  • 相比之下,管理自动驾驶汽车行为的算法正在根据可用的传感器数据做出分裂的决策。算法的错误决定可能会产生生死的后果,因此这些算法需要是强壮的和值得信赖的。
  • 每次进行Web搜索时,搜索引擎都会使用算法来对该搜索的最相关页面进行排名。在这种情况下,用户关心准确性搜索结果,也是速度搜索。搜索体验的质量可能会影响该搜索引擎的受欢迎程度,并最终从公司中赚取的资金。

问题解决了?

正如我们所看到的,算法无处不在,但这并不意味着它们已被完全理解。离得很远!尽管使用算法和大量“标准”算法解决了许多问题,但仍有工作要做。作为一个社会,我们正在发现可以通过科学,医学,艺术,政治和AI中的算法解决的新问题。新算法不断发明,现有算法得到改善。为了继续这样做,世界需要更多的计算机科学家。

本文来自免费的在线免费

编程102:像计算机科学家一样思考

由...制作
FutureLearn-终身学习

我们的目的是改变接受教育的机会。

我们提供来自世界各地的大学和文化机构的各种课程。这些一次是一次交付的一步,并且可以在移动,平板电脑和台式机上访问,因此您可以适合自己的生活。

我们认为,学习应该是一种愉快的社交经验,因此我们的课程为您提供了与他人一起讨论的机会,帮助您做出新的发现并形成新的想法。
您可以通过订阅我们无限制的包裹来解锁新的机会,以无限制地访问数百种在线短课程。电竞博彩app有什么通过顶尖的大学和组织建立知识。dota2竞猜吧

了解有关FutureLearn如何转化接受教育的更多信息