科学

算法数学

算法数学
算法数学
Anonim

算法,系统的过程,在有限的步骤中产生问题的答案或问题的解决方案。该名称源自9世纪穆斯林数学家al-Khwarizmi的算术论文“ Al-Khwarizmi关于印度教算术”的拉丁语翻译Algoritmi de numero Indorum。

计算机科学:算法和复杂性

算法是解决定义明确的计算问题的特定过程。算法的开发和分析是基础

对于仅具有有限情况或一组值的问题或疑问,始终存在一种算法(至少在原则上);它由答案的值表组成。通常,回答具有无数个要考虑的情况或值的问题或问题,例如“自然数(1、2、3,…)是素数吗?”,并不是简单的过程。或“自然数a和b的最大公约数是多少?” 这些问题中的第一个属于可判定类。产生是或否答案的算法称为决策程序。第二个问题属于可计算类。导致特定数字答案的算法称为计算过程。

存在针对许多此类无限类问题的算法。欧几里得的《元素》发表于公元前300年,其中包含一个用于找出两个自然数的最大公约数。每个小学生都会进行长除法训练,这是一个算法的问题:“将自然数a除以另一个自然数b,商和余数是多少?” 使用此计算程序将得出一个可确定的问题“ b是否除以a?”的答案。(如果余数为零,则答案为是)。重复应用这些算法最终会得出可解决问题“是素数”的答案。(如果将a除以1以外的任何较小的自然数,则答案为否)。

有时,不存在解决无限类问题的算法,尤其是当对接受的方法进行进一步限制时。例如,从欧几里得时代开始,仅使用指南针和直尺(未标尺)的两个问题就被解决了几个世纪,直到证明它们是不可能的-将角度三等分并构造一个面积等于给定圆的正方形。 。在20世纪初,颇具影响力的德国数学家戴维·希尔伯特(David Hilbert)提出了23个问题,供数学家在下个世纪解决。他名单上的第二个问题要求研究算术公理的一致性。直到1931年,奥地利出生的逻辑学家科特·哥德尔(KurtGödel)证明了令人惊讶的结果,即必须存在无法证明或无法证明的算术命题(或问题),大多数数学家对此的最终实现毫不怀疑。本质上,任何这样的命题都会导致确定过程永无止境(一种称为停顿问题的条件)。为了不成功地确定至少哪些命题是无法解决的,英国数学家和逻辑学家艾伦·图灵(Alan Turing)严格定义了算法的概念。尽管Turing最终证明必须存在不确定的命题,但是他对任何通用算法机器或Turing机器的基本特征的描述成为计算机科学的基础。如今,可判定性和可计算性问题已成为计算机程序(一种特殊类型的算法)设计的核心。