我们正在努力恢复Google Play商店上的Unionpedia应用程序
传出传入
🌟我们简化了设计以优化导航!
Instagram Facebook X LinkedIn

算法

指数 算法

-- 算法(algorithm),在數學(算學)和電腦科學之中,為任何良定义的具體計算步驟的一个序列,常用於計算、和自動推理。精確而言,算法是一個表示爲有限長列表的。算法應包含清晰定義的指令用於計算函數。 算法中的指令描述的是一個計算,當其時能從一個初始狀態和初始輸入(可能爲空)開始,經過一系列有限而清晰定義的狀態最終產生輸出並停止於一個終態。一個狀態到另一個狀態的轉移不一定是確定的。隨機化算法在内的一些算法,包含了一些隨機輸入。 形式化算法的概念部分源自尝试解决希尔伯特提出的判定问题,並在其后尝试定义或者中成形。这些尝试包括库尔特·哥德尔、雅克·埃尔布朗和斯蒂芬·科尔·克莱尼分别于1930年、1934年和1935年提出的遞歸函數,阿隆佐·邱奇於1936年提出的λ演算,1936年的Formulation 1和艾倫·圖靈1937年提出的圖靈機。即使在當前,依然常有直覺想法難以定義爲形式化算法的情況。.

目录

  1. 87 关系: 加密算法动态规划埃拉托斯特尼筛法垃圾进,垃圾出可计算性理论启发式搜索大卫·希尔伯特丁巨算法九章算术平方根并行计算广度优先搜索人工神经网络库尔特·哥德尔伯努利微分方程刘徽分布式计算分團問題分析機分治法周髀算經凸包函数割圆术 (刘徽)图灵机图论四则运算C语言确定性算法程大位程序程序员空字元串立方根算學算法导论素数线性规划网络流电路随机化算法花拉子米遗传算法計算複雜性理論高德纳高级综合计算计算几何计算理论计算机科学... 扩展索引 (37 更多) »

  2. 理论计算机科学

加密算法

#重定向 加密.

查看 算法和加密算法

动态规划

动态规划(Dynamic programming,简称DP)是一种在数学、管理科学、计算机科学、经济学和生物信息学中使用的,通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。 动态规划常常适用于有重叠子问题和性质的问题,动态规划方法所耗时间往往远少于朴素解法。 动态规划背后的基本思想非常简单。大致上,若要解一个给定问题,我们需要解其不同部分(即子问题),再根据子问题的解以得出原问题的解。 通常许多子问题非常相似,为此动态规划法试图仅仅解决每个子问题一次,从而减少计算量:一旦某个给定子问题的解已经算出,则将其记忆化存储,以便下次需要同一个子问题解之时直接查表。这种做法在重复子问题的数目关于输入的规模呈指數增長时特别有用。.

查看 算法和动态规划

埃拉托斯特尼筛法

埃拉托斯特尼筛法(κόσκινον Ἐρατοσθένους,sieve of Eratosthenes ),簡稱--,也有人称素数筛。这是一種簡單且历史悠久的筛法,用來找出一定範圍內所有的質數。 所使用的原理是從2開始,將每個質數的各個倍數,標記成合數。一個質數的各個倍數,是一個差為此質數本身的等差數列。此為這個篩法和試除法不同的關鍵之處,後者是以質數來測試每個待測數能否被整除。 埃拉托斯特尼篩法是列出所有小質數最有效的方法之一,其名字來自於古希臘數學家埃拉托斯特尼,並且被描述在另一位古希臘數學家尼科馬庫斯所著的《算術入門》中。.

查看 算法和埃拉托斯特尼筛法

垃圾进,垃圾出

垃圾进,垃圾出(Garbage in, garbage out,缩写:GIGO),或译为废料进,废品出,是计算机科学与信息通信技术领域的一句习语,说明了如果将错误的、无意义的数据输入计算机系统,计算机自然也一定会输出错误、无意义的结果。同样的原则在计算机外的其他领域也有体现。.

查看 算法和垃圾进,垃圾出

可计算性理论

在计算机科学中,可计算性理论(Computability theory)作为计算理论的一个分支,研究在不同的计算模型下哪些算法问题能够被解决。相对应的,计算理论的另一块主要内容,计算复杂性理论考虑一个问题怎样才能被有效的解决。.

查看 算法和可计算性理论

启发式搜索

计算机科学中所謂的heuristic,除了有經驗法則的意思外(見啟發式),它還有另外兩個技術上的意義。.

查看 算法和启发式搜索

大卫·希尔伯特

大卫·希尔伯特(David Hilbert,),德国数学家,是19世纪和20世纪初最具影响力的数学家之一。希尔伯特1862年出生于哥尼斯堡(今俄罗斯加里宁格勒),1943年在德国哥廷根逝世。他因为发明了大量的思想观念(例:不变量理论、、希尔伯特空间)而被尊为伟大的数学家、科学家。 他提出了希尔伯特空间的理論,是泛函分析的基礎之一。他热忱地支持康托的集合论与无限数。他在数学上的领导地位充分体现于:1900年,在巴黎的国际数学家大会提出的一系列问题(希尔伯特的23个问题)为20世纪的许多数学研究指出方向。 希尔伯特和他的学生为形成量子力学和广义相对论的数学基础做出了重要的贡献。他还是证明论、数理逻辑、区分数学与元数学之差别的奠基人之一。.

查看 算法和大卫·希尔伯特

丁巨算法

《丁巨算法》,元代数学家丁巨撰,原书八卷,已失传,但存世90题,其中《永乐大典》收入28题,《知不足斋丛书》62题。内容包括四则运算、方程、少广、盈不足、田亩、斤称等。.

查看 算法和丁巨算法

九章算术

《九章算术》九卷,是現存最早的中國古代数学著作之一,《算经十书》中最重要的一种。其作者已不可考。一般认为它是经历代各家的增补修订,而逐渐成为现今定本的。在四庫全書中為子部天文演算法算書類。 《九章算术》內容豐富,題材廣泛,共九章,分為二百四十六題二百零二術,不但是漢代重要的數學著作。在中國和世界數學史上佔有重要的地位。作為中國古代數學的系統總結,對中國傳統數學的發展有了深遠的影響。.

查看 算法和九章算术

平方根

在數學中,一個數x的平方根y指的是滿足y^2.

查看 算法和平方根

并行计算

并行计算(parallel computing)一般是指许多指令得以同时进行的计算模式。在同時進行的前提下,可以將計算的過程分解成小部份,之後以並行方式來加以解決。 電腦軟體可以被分成數個運算步驟來執行。為了解決某個特定問題,軟體採用某個演算法,以一連串指令執行來完成。傳統上,這些指令都被送至單一的中央处理器,以循序方式執行完成。在這種處理方式下,單一時間中,只有單一指令被執行(processor level: 比较微处理器,CISC, 和RISC,即流水线Pipeline的概念,以及后来在Pipeline基础上以提高指令处理效率为目的的硬件及软件发展,比如branch-prediction, 比如forwarding,比如在每个运算单元前的指令堆栈,汇编程序员对programm code的顺序改写)。平行運算採用了多個運算單元,同時執行,以解決問題。.

查看 算法和并行计算

广度优先搜索

广度优先搜索算法(Breadth-First-Search,縮寫為BFS),又譯作寬度優先搜索,或橫向優先搜索,是一種圖形搜索演算法。簡單的說,BFS是從根節點開始,沿着树的宽度遍历树的节点。如果所有节点均被访问,则算法中止。广度优先搜索的实现一般采用open-closed表。.

查看 算法和广度优先搜索

人工神经网络

人工神经网络(Artificial Neural Network,ANN),简称神经网络(Neural Network,NN)或類神經網絡,在机器学习和认知科学领域,是一种模仿生物神经网络(动物的中樞神經系統,特别是大脑)的结构和功能的数学模型或计算模型,用于对函数进行估计或近似。神经网络由大量的人工神经元联结进行计算。大多数情况下人工神经网络能在外界信息的基础上改变内部结构,是一种自适应系统,通俗的講就是具備學習功能。现代神经网络是一种非线性统计性数据建模工具。典型的神经网络具有以下三个部分:.

查看 算法和人工神经网络

库尔特·哥德尔

库尔特·弗雷德里希·哥德尔(Kurt Friedrich Gödel,),出生於奧匈帝國的數學家、邏輯學家和哲學家,维也纳学派(维也纳小组)的成员。其最杰出的贡献是哥德尔不完备定理和连续统假设的相对协调性证明。.

查看 算法和库尔特·哥德尔

伯努利微分方程

伯努利微分方程是形式如 y'+ P(x)y.

查看 算法和伯努利微分方程

刘徽

刘徽(约225年-约295年),三国时代魏国数学家。白尚恕考证他是山东淄博淄川人,梁敬王刘定国之孙菑乡侯刘逢喜的后裔。 刘徽为《九章算术》做注,于三国魏景元四年(公元263年)成书,其中他提出用割圆术计算圆周率的方法,计算出正192边形的面积,得到圆周率的近似值为 \tfrac (即 3.14),在此基础上又计算出正3072边形的面积,得到圆周率的近似值为 \tfrac (即 3.1416)。作此書注時,他還依據其「割補術」為證勾股定理,另闢蹊徑作青朱出入圖。圖雖失傳,但據其「出入相補、以盈補虛」原理,後人參照書中類似方法還原了此圖。 刘徽後撰《重差》,唐初以後失传,仅《重差》一卷单行,因其第一题是测量海岛高度和距离的问题,故又名《海岛算经》。此外刘徽還著有《魯史欹器圖》,《九章重差圖》,唐代失傳。 刘徽的卓越成就受到后人的重视,宋徽宗时代为恢复数学教学制度,便追封了部分历代的天算家,其中便有刘徽。.

查看 算法和刘徽

分布式计算

在計算機科學中,分布式计算(Distributed computing),又譯為--。這個研究領域,主要研究分散式系統(Distributed system)如何進行計算。分散式系統是一組電腦,透過網路相互连接傳遞訊息與通訊後并协调它们的行为而形成的系統。组件之间彼此进行交互以实现一个共同的目标。把需要进行大量计算的工程数据分割成小块,由多台计算机分别计算,再上传运算结果後,將結果统一合并得出数据结论的科学。分布式系统的例子来自有所不同的面向服务的架构,大型多人線上遊戲,对等网络应用。 目前常见的分布式计算项目通常使用世界各地上千万志愿者计算机的闲置计算能力,通过互联网进行数据传输(志愿计算)。如分析计算蛋白质的内部结构和相关药物的Folding@home项目,該项目結構庞大,需要惊人的计算量,由一台电脑计算是不可能完成的。虽然现在有了计算能力超强的超级計算機,但這些設備造價高昂,而一些科研机构的经费却又十分有限,藉助分佈式計算可以花費較小的成本來達到目標。.

查看 算法和分布式计算

分團問題

在計算複雜度理論中,分團問題(clique problem)是圖論中的一個NP完全(NP-complete)問題。 clique是一個圖中兩兩相鄰的一個點集,或是一個完全子圖(complete subgraph),如右圖中的1、2、5三個點。 clique problem是問一個圖中是否有大小是k以上的clique。任意挑出k個點,我們可以簡單的判斷出這k個點是不是一個clique,所以這個問題屬於NP。 證明這問題是NP完備,我們可以很簡單的將(Independent set problem)歸約成這個問題。因為存在一個大小是k以上的分團,等價於它的補圖中存在一個大小是k以上的獨立集。.

查看 算法和分團問題

分析機

分析机是由英国数学家查尔斯·巴贝奇设计的一种机械式通用计算机。从1837年首次提出这种机器的设计,一直到他去世的1871年,由于种种原因,这种机器并没有被真正地制造出来。但它本身的设计逻辑却十分先进,是大约100年后电子通用计算机的先驱。.

查看 算法和分析機

分治法

在计算机科学中,分治法是建基於多項分支遞歸的一种很重要的算法範式。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。 这个技巧是很多高效算法的基础,如排序算法(快速排序、归并排序)、傅立叶变换(快速傅立叶变换)。 另一方面,理解及設計分治法算法的能力需要一定時間去掌握。正如以歸納法去證明一個理論,為了使遞歸能夠推行,很多時候需要用一個較為概括或複雜的問題去取代原有問題。而且並沒有一個系統性的方法去適當地概括問題。 分治法這個名稱有時亦會用於將問題簡化為只有一個細問題的算法,例如用於在已排序的列中尋找其中一項的折半搜索算法(或是在數值分析中類似的勘根算法)。這些算法比一般的分治算法更能有效地執行。其中,假如算法使用尾部遞歸的話,便能轉換成簡單的迴圈。但在這廣義之下,所有使用遞歸或迴圈的算法均被視作「分治算法」。因此,有些作者考慮「分治法」這個名稱應只用於每個有最少兩個子問題的算法。而只有一個子問題的曾被建議使用減治法這個名稱。 分治算法通常以數學歸納法來驗證。而它的計算成本則多數以解遞迴關係式來判定。.

查看 算法和分治法

周髀算經

《周髀算經》()也简称《周髀》,是中国古代一本数学专业书籍,在中国唐代收入《算经十书》,并为《十经》的第一部。 周髀的成书年代至今没有统一的说法,有人认为是周公所作,也有人認為是在西漢末年寫成。 《周髀算经》是中国历史上最早的一部天文曆算著作,也是中國流傳至今最早的數學著作,是後世數學的源頭,其算術化傾向決定中國數學發展的性質,歷代數學家奉為經典。在四庫全書中為子部天文演算法推步類。.

查看 算法和周髀算經

凸包

S是最小的凸集使得一個點集X屬於S,則S稱為X的凸包。 1.

查看 算法和凸包

函数

函數在數學中為兩集合間的一種對應關係:輸入值集合中的每項元素皆能對應唯一一項輸出值集合中的元素。例如實數x對應到其平方x2的關係就是一個函數,若以3作為此函數的輸入值,所得的輸出值便是9。 為方便起見,一般做法是以符號f,g,h等等來指代一個函數。若函數f以x作為輸入值,則其輸出值一般寫作f(x),讀作f of x。上述的平方函數關係寫成數學式記為f(x).

查看 算法和函数

割圆术 (刘徽)

三国时代数学家刘徽的割圆术是中国古代数学中“一个十分精彩的算法”。在此之前,圆周率采用“径一周三”的实验数据。东汉科学家张衡采用\pi.

查看 算法和割圆术 (刘徽)

图灵机

图灵机(),又称确定型图灵机,是英国数学家艾倫·图灵于1936年提出的一种抽象计算模型,其更抽象的意义为一种数学逻辑机,可以看作等价于任何有限逻辑数学过程的终极强大逻辑机器。.

查看 算法和图灵机

图论

图论(Graph theory)是组合数学的一个分支,和其他数学分支,如群论、矩阵论、拓扑学有着密切关系。图是图论的主要研究对象。图是由若干给定的顶点及连接两顶点的边所构成的图形,这种图形通常用来描述某些事物之间的某种特定关系。顶点用于代表事物,连接两顶点的边则用于表示两个事物间具有这种关系。 图论起源于著名的柯尼斯堡七桥问题。该问题于1736年被欧拉解决,因此普遍认为欧拉是图论的创始人。 图论的研究对象相当于一维的单纯复形。.

查看 算法和图论

四则运算

四则运算,即加减乘除,是數學最基本的算術运算。如果加減乘除放在同一個算式列中的話,其計算的順序是「先乘除,後加減」,括號先算。四則運算的起源很早,幾乎在數學產生時就有了。.

查看 算法和四则运算

C语言

C是一种通用的程式語言,广泛用于系统软件与应用软件的开发。于1969年至1973年間,為了移植與開發UNIX作業系統,由丹尼斯·里奇與肯·汤普逊,以B语言为基础,在贝尔实验室設計、开发出來。 C语言具有高效、灵活、功能丰富、表达力强和較高的可移植性等特点,在程式設計中备受青睐,成为最近25年使用最为广泛的编程语言。目前,C语言編譯器普遍存在於各種不同的操作系统中,例如Microsoft Windows、macOS、Linux、Unix等。C語言的設計影響了众多後來的程式語言,例如C++、Objective-C、Java、C#等。 二十世纪八十年代,為了避免各開發廠商用的C語言語法產生差異,由美國國家標準局為C語言訂定了一套完整的國際標準語法,稱為ANSI C,作為C語言的標準。二十世纪八十年代至今的有关程式開發工具,一般都支持符合ANSI C的語法。.

查看 算法和C语言

确定性算法

确定性算法(deterministic algorithm)是计算机算法的一类。如果以算法的每一步骤是否确定来分类,计算机算法可以分为确定性算法和随机化算法。 Category:演算法 Category:算法分析.

查看 算法和确定性算法

程大位

程大位(),字汝思,號賓渠,安徽休寧縣率口人(今黃山市屯溪)。 嘉靖十二年四月初十(1533年5月3日)出生於商人家庭,因商業上的需要,對數學很有興趣,不惜重金購求算書,日後繼承父業,「周游吳楚之壚」,六十歲時著書《算法統宗》17卷,載595個數學問題,被推崇為中國“珠算鼻祖”。萬曆三十四年(1606年)卒。其故居至今仍坐落於屯溪區率口渠東側,佔地540平方米。 明代著名的大数学家程大位,在他所著的《算法统宗》中,对于这种解一般“孙子问题”的方法,还编出了四句歌诀,名曰《孙子歌》: 歌中的“廿”,读音与“念”音相同。“廿”即二十的意思。 这一歌诀的“诗意”,我们可以不去理会,只需注意它的数字就行了。歌诀中的每一句话,都指出了一步解题方法: 三(3)人同行七十(70)稀”——是说除以3所得的余数,要用“70”去乘它; 五(5)树梅花廿一(21)枝”——是说除以5所得的余数,要用“21”去乘它; 七(7)子团圆正半月(15)”——“半月”是一个月30天的一半,即15日,这是说,除以 7所得的余数,要用“ 15”去乘它; 除百零五(105)便得知”——这是说要把上面所乘得的三个数相加,加得的和如果大于105,便应减去105,或者减去105的倍数。这也就是《孙子算经》上的“一百六(106)以上,以一百五(105)减之”。这样得出的差,便是所要求的这个最小的未知数了。.

查看 算法和程大位

程序

程序(procedure),指特定的一系列動作、行動或操作,而這些活動、動作或操作必須以相同方式執行,藉此在相同環境下恆常得出相同的結果(例如緊急應變程序)。粗略而言,程序可以指一序列的活動、作業、步驟、決斷、計算和工序,當它們保證依照嚴格規定的順序發生時即產生所述的後果、產品或局面。一個程序通常引致一個改變。現在小孩也可以寫程式。.

查看 算法和程序

程序员

| image.

查看 算法和程序员

空字元串

在計算機科學或形式語言中,空字元串是指在字母表Σ上,其長度為 0 的那唯一字串,以ε或λ來標記。 在物件導向程式語言中,空字串共非空參照。一個字串型別的空參照並未指向一個字串物件,而對其操作則會導致錯誤。空字串則可以使用字串運算。.

查看 算法和空字元串

立方根

如果一個數x的立方等於a,那麼這個數x就是a的立方根,其中x稱為被開方數,而x可以是正數、0、負數或虚数。例如3的立方為27,那麼這個數3就是27的一个立方根(在实数范围内)。若x是正實數,這個乘積相當於一個邊長為x的立方体的体積。.

查看 算法和立方根

算學

算學,又作筭學,是指漢字文化圈傳統的數學體系,源於中國,包括中國的算學、日本的和算、朝鮮半島的韓算,以及越南、琉球的算學。特點是机械化、算法化、和构造性,且具有强烈的实用数学特点,与希腊数学重逻辑推理和抽象化的希腊数学形成鲜明的对照。.

查看 算法和算學

算法导论

《算法导论》(Introduction to Algorithms)是基础算法方面最权威、最详细的著作之一,在很多国际著名大学被用于算法课的教材。诸多算法方面的论文将其列入参考文献当中。 该书详细的介绍了诸多常见的算法及数据结构,并用严谨的证明来论证其正确性。每个章节均有例题,适合学习者深入理解。第一版刊行于1990年,2009年最新版为第三版。在许多国家常常以作者姓名首个英文字母被称为CLRS(第一版则简称为CLR)。.

查看 算法和算法导论

素数

質--數(Prime number),又称素--数,指在大於1的自然数中,除了1和該数自身外,無法被其他自然数整除的数(也可定義為只有1與該數本身两个正因数的数)。大於1的自然數若不是質數,則稱之為合數。例如,5是個質數,因為其正因數只有1與5。而6則是個合數,因為除了1與6外,2與3也是其正因數。算術基本定理確立了質數於數論裡的核心地位:任何大於1的整數均可被表示成一串唯一質數之乘積。為了確保該定理的唯一性,1被定義為不是質數,因為在因式分解中可以有任意多個1(如3、1×3、1×1×3等都是3的有效因數分解)。 古希臘數學家歐幾里得於公元前300年前後證明有無限多個質數存在(欧几里得定理)。現時人們已發現多種驗證質數的方法。其中試除法比較簡單,但需時較長:設被測試的自然數為n,使用此方法者需逐一測試2與\sqrt之間的整數,確保它們無一能整除n。對於較大或一些具特別形式(如梅森數)的自然數,人們通常使用較有效率的演算法測試其是否為質數(例如277232917-1是直至2017年底為止已知最大的梅森質數)。雖然人們仍未發現可以完全區別質數與合數的公式,但已建構了質數的分佈模式(亦即質數在大數時的統計模式)。19世紀晚期得到證明的質數定理指出:一個任意自然數n為質數的機率反比於其數位(或n的對數)。 許多有關質數的問題依然未解,如哥德巴赫猜想(每個大於2的偶數可表示成兩個素數之和)及孿生質數猜想(存在無窮多對相差2的質數)。這些問題促進了數論各個分支的發展,主要在於數字的解析或代數方面。質數被用於資訊科技裡的幾個程序中,如公鑰加密利用了難以將大數分解成其質因數之類的性質。質數亦在其他數學領域裡形成了各種廣義化的質數概念,主要出現在代數裡,如質元素及質理想。.

查看 算法和素数

线性规划

在數學中,線性規劃(Linear Programming,簡稱LP)特指目標函數和約束條件皆為線性的最優化問題。 線性規劃是最優化問題中的一個重要領域。在作業研究中所面臨的許多實際問題都可以用線性規劃來處理,特別是某些特殊情況,例如:網路流、多商品流量等問題,都被認為非常重要。目前已有大量針對線性規劃算法的研究。很多最優化問題算法都可以分解為線性規劃子問題,然後逐一求解。在線性規劃的歷史發展過程中所衍伸出的諸多概念,建立了最優化理論的核心思維,例如「對偶」、「分解」、「凸集」的重要性及其一般化等。在微观经济学和商业管理领域中,线性规划亦被大量应用于例如降低生产过程的成本等手段,最終提升產值與營收。乔治·丹齐格被認爲是线性规划之父。.

查看 算法和线性规划

网络流

在圖論中,網絡流(Network flow)是指在一個每條邊都有容量(capacity)的有向圖分配流,使一條邊的流量不會超過它的容量。通常在運籌學中,有向图称为网络。顶点称为节点(node)而边称为弧(arc)。一道流必須符合一個結點的進出的流量相同的限制,除非這是一個源點(source)──有較多向外的流,或是一個匯點(sink)──有較多向內的流。一個網絡可以用來模擬道路系統的交通量、管中的液體、電路中的電流或類似一些東西在一個結點的網絡中遊動的任何事物。.

查看 算法和网络流

电路

电路(Electrical circuit)或稱电子迴路,是由电气设备和--, 按一定方式連接起来,为电荷流通提供了路径的总体,也叫电子线路或稱電氣迴路,簡稱网络或迴路。如電源、电阻、电容、电感、二极管、三极管、電晶體、集成電路和电键等,构成的网络、硬體。负电荷可以在其中运动。.

查看 算法和电路

随机化算法

随机化算法(randomized algorithm),是这样一种算法,在算法中使用了随机函数,且随机函数的返回值直接或者间接的影响了算法的执行流程或执行结果。就是将算法的某一步或某几步置于运气的控制之下,即该算法在运行的过程中的某一步或某几步涉及一个随机决策,或者说其中的一个决策依赖于某种随机事件。 Category:算法分析.

查看 算法和随机化算法

花拉子米

花拉子米全名是阿布·阿卜杜拉·穆罕默德·伊本·穆薩·花拉子米(Abū ʿAbdallāh Muḥammad ibn Mūsā al-Khwārizmī,約780年-約850年),他是一位波斯數學家、天文學家及地理學家,也是巴格達智慧之家的學者。 他的《代數學》(Kitab al-Jabr wa-l-Muqabala)是第一本解決一次方程及一元二次方程的系統著作,他因而被稱為代數的創造者,與丟番圖享名。十二世紀,花拉子米在印度數字方面的著作被翻譯成拉丁文,十進制因此傳入西方世界。此外,他修訂了托勒密的《地理》,並著有天文學及占星學方面的書籍。 从一些词就可以看出他对数学的重要贡献,「代數」(algebra)一詞出自阿拉伯文拉丁轉寫「al-jabr」,「al-jabr」是用以解決一元二次方程的兩個辦法之一。--(Algorism、Algorithm)出自「Algoritmi」,這是花拉子米(al-Khwārizmī)的拉丁文譯名,而西班牙語「guarismo」及葡萄牙語「algarismo」亦是由此名字而來,這兩個詞語都解作數字。.

查看 算法和花拉子米

遗传算法

遗传算法(genetic algorithm (GA) )是计算数学中用于解决最佳化的搜索算法,是进化算法的一种。进化算法最初是借鉴了进化生物学中的一些现象而发展起来的,这些现象包括遗传、突变、自然选择以及杂交等。 遗传算法通常实现方式为一种计算机模拟。对于一个最优化问题,一定数量的候选解(称为个体)可抽象表示为染色體,使种群向更好的解进化。传统上,解用二进制表示(即0和1的串),但也可以用其他表示方法。进化从完全随机个体的种群开始,之后一代一代发生。在每一代中评价整个种群的适应度,从当前种群中随机地选择多个个体(基于它们的适应度),通过自然选择和突变产生新的生命种群,该种群在算法的下一次迭代中成为当前种群。.

查看 算法和遗传算法

計算複雜性理論

计算复杂性理论(Computational complexity theory)是理论计算机科学和数学的一个分支,它致力于将可计算问题根据它们本身的复杂性分类,以及将这些类别联系起来。一个可计算问题被认为是一个原则上可以用计算机解决的问题,亦即这个问题可以用一系列机械的数学步骤解决,例如算法。 如果一个问题的求解需要相当多的资源(无论用什么算法),则被认为是难解的。计算复杂性理论通过引入数学计算模型来研究这些问题以及定量计算解决问题所需的资源(时间和空间),从而将资源的确定方法正式化了。其他复杂性测度同样被运用,比如通信量(应用于通信复杂性),电路中门的数量(应用于电路复杂性)以及中央处理器的数量(应用于并行计算)。计算复杂性理论的一个作用就是确定一个能或不能被计算机求解的问题的所具有的实际限制。 在理论计算机科学领域,与此相关的概念有算法分析和可计算性理论。两者之间一个关键的区别是前者致力于分析用一个确定的算法来求解一个问题所需的资源量,而后者则是在更广泛意义上研究用所有可能的算法来解决相同问题。更精确地说,它尝试将问题分成能或不能在现有的适当受限的资源条件下解决这两类。相应地,在现有资源条件下的限制正是区分计算复杂性理论和可计算性理论的一个重要指标:后者关心的是何种问题原则上可以用算法解决。.

查看 算法和計算複雜性理論

高德纳

德納(Donald Ervin Knuth,音譯:唐納德·爾文·克努斯,),出生於美国密尔沃基,著名计算机科学家,斯坦福大学计算机系榮譽退休教授。高德纳教授為现代计算机科学的先驅人物,創造了演算法分析的領域,在數個理論計算機科學的分支做出基石一般的貢獻。在计算机科学及数学领域发表了多部具广泛影响的论文和著作。1974年圖靈獎得主。 高德纳最為人知的事蹟是,他是《计算机程序设计艺术》的作者。此書是計算機科學界最受高度敬重的參考書籍之一。此外還是排版軟件tex和字型設計系統Metafont的发明人。提出文学编程的概念,並創造了WEB與CWEB軟體,作為文學編程開發工具。.

查看 算法和高德纳

高级综合

级综合(High-level Synthesis,縮寫 HLS),又譯高层次综合,另又稱C合成(C synthesis)、電子系統層次合成(Electronic System Level synthesis,縮寫 ESL synthesis),是将电路设计规范的算法级或行为级描述在一定的约束条件下转化为电路结构描述的方法和过程。高层次综合又称为行为级综合、算法级综合等。它使设计者能够在更高层次进行电子设计,更快速有效地在较高层次设计验证和仿真,而较低层次的工作由工具来自动完成,从而让数字电路系统设计工程师可以有更多的精力和更充分的条件去进行设计空间的搜索,寻求最佳的设计方案。 HLS 的过程通常基本包括预处理、编译、转换、调度、分配、控制器、综合、RTL 、生成、和反编译等几个部分。编译、转换部分决定了软件的兼容性和易用性,调度(schedule)和分配(binding)主要决定了产生的 RTL 的性能、资源大小等。.

查看 算法和高级综合

计算

計算(Calculation)是一種將「單一或多個的輸入值」轉換為「單一或多個的結果」的一種思考過程。 計算的定義有許多種使用方式,有相當精確的定義,例如使用各種算法進行的「算术」,也有較為抽象的定義,例如在一場競爭中「策略的計算」或是「計算」兩人之間關係的成功機率。 將7乘以8(7x8)就是一種簡單的算術。 利用布莱克-斯科尔斯模型(Black-Scholes Model)來算出財務評估中的公平價格(fair price)就是一種複雜的算術。 從投票意向計算評估出的選舉結果(民意調查)也包含了某種算術,但是提供的結果是「各種可能性的範圍」而不是單一的正確答案。.

查看 算法和计算

计算几何

计算几何是一门兴起于二十世纪七十年代末的计算机科学的一个分支,主要研究解决几何问题的算法。计算机的出现使得一些问题大幅简化,然而一些人类直观 自从1946年世界上第一台电子计算机问世以来,计算机应用的一个重要里程碑是1962年美国麻省理工学院发明了世界上第一台图形显示器。自此之后,计算机可以通过图形显示器直接输入、输出图形,并且可以在显示屏上通过光标的移动而直接修改图形。而在这之前,工程师是通过一厚叠纸上密密麻麻的数字来间接表达工程图形的。 1962年被认为是美国和欧洲CAD开始发展的一年。首先的应用领域是汽车、飞机和造船工业。这3个行业,由于其产品的外形曲面特别复杂,要求特别苛刻,而成为CAD首先应用的领域。 与此同时,也就发展出了一门新兴学科——计算几何,它在美国常常被称为CAGD(Computer Aided Geometric Design,计算机辅助几何设计),专门研究“几何图形信息(曲面和三维实体)的计算机表示、分析、修改和综合”。1972年在美国举行CAGD第一次国际会议,标志计算几何学科的形成。.

查看 算法和计算几何

计算理论

计算理论(Theory of computation)是數學的一個領域,和计算机有密切关系。其中的理论是现代密码协议、计算机设计和许多应用领域的基础。该领域主要关心三个方面的问题:.

查看 算法和计算理论

计算机科学

计算机科学用于解决信息与计算的理论基础,以及实现和应用它们的实用技术。 计算机科学(computer science,有时缩写为CS)是系统性研究信息与计算的理论基础以及它们在计算机系统中如何与应用的实用技术的学科。 它通常被形容为对那些创造、描述以及转换信息的算法处理的系统研究。计算机科学包含很多分支领域;有些强调特定结果的计算,比如计算机图形学;而有些是探討计算问题的性质,比如计算复杂性理论;还有一些领域專注于怎样实现计算,比如程式語言理論是研究描述计算的方法,而程式设计是应用特定的程式語言解决特定的计算问题,人机交互则是專注于怎样使计算机和计算变得有用、好用,以及随时随地为人所用。 有时公众会误以为计算机科学就是解决计算机问题的事业(比如信息技术),或者只是与使用计算机的经验有关,如玩游戏、上网或者文字处理。其实计算机科学所关注的,不仅仅是去理解实现类似游戏、浏览器这些软件的程序的性质,更要通过现有的知识创造新的程序或者改进已有的程序。 尽管计算机科学(computer science)的名字里包含计算机这几个字,但实际上计算机科学相当数量的领域都不涉及计算机本身的研究。因此,一些新的名字被提议出来。某些重点大学的院系倾向于术语计算科学(computing science),以精确强调两者之间的不同。丹麦科学家Peter Naur建议使用术语"datalogy",以反映这一事实,即科学学科是围绕着数据和数据处理,而不一定要涉及计算机。第一个使用这个术语的科学机构是哥本哈根大学Datalogy学院,该学院成立于1969年,Peter Naur便是第一任教授。这个术语主要被用于北欧国家。同时,在计算技术发展初期,《ACM通讯》建议了一些针对计算领域从业人员的术语:turingineer,turologist,flow-charts-man,applied meta-mathematician及applied epistemologist。 三个月后在同样的期刊上,comptologist被提出,第二年又变成了hypologist。 术语computics也曾经被提议过。在欧洲大陆,起源于信息(information)和数学或者自动(automatic)的名字比起源于计算机或者计算(computation)更常见,如informatique(法语),Informatik(德语),informatika(斯拉夫语族)。 著名计算机科学家Edsger Dijkstra曾经指出:“计算机科学并不只是关于计算机,就像天文学并不只是关于望远镜一样。”("Computer science is no more about computers than astronomy is about telescopes.")设计、部署计算机和计算机系统通常被认为是非计算机科学学科的领域。例如,研究计算机硬件被看作是计算机工程的一部分,而对于商业计算机系统的研究和部署被称为信息技术或者信息系统。然而,现如今也越来越多地融合了各类计算机相关学科的思想。计算机科学研究也经常与其它学科交叉,比如心理学,认知科学,语言学,数学,物理学,统计学和经济学。 计算机科学被认为比其它科学学科与数学的联系更加密切,一些观察者说计算就是一门数学科学。 早期计算机科学受数学研究成果的影响很大,如Kurt Gödel和Alan Turing,这两个领域在某些学科,例如数理逻辑、范畴论、域理论和代数,也不断有有益的思想交流。.

查看 算法和计算机科学

计算机程序设计艺术

《计算机程序设计艺术》(The Art of Computer Programming),簡稱TAOCP,是高德纳编著的关于计算机程序设计的七卷本著作。作者並因此获得美国计算机协会1974年图灵奖。.

查看 算法和计算机程序设计艺术

贪心法

贪心法,又称貪心演算法、貪婪演算法、或稱貪婪法,是一种在每一步选择中都采取在当前状态下最好或最优(即最有利)的选择,从而希望导致结果是最好或最优的算法。比如在旅行推销员问题中,如果旅行员每次都选择最近的城市,那这就是一种贪心算法。 贪心算法在有最优子结构的问题中尤为有效。最优子结构的意思是局部最优解能决定全局最优解。简单地说,问题能够分解成子问题来解决,子问题的最优解能递推到最终问题的最优解。 贪心算法与动态规划的不同在于它对每个子问题的解决方案都做出选择,不能回退。动态规划则会保存以前的运算结果,并根据以前的结果对当前进行选择,有回退功能。 贪心法可以解决一些最优化问题,如:求图中的最小生成树、求哈夫曼编码……对于其他问题,贪心法一般不能得到我们所要求的答案。一旦一个问题可以通过贪心法来解决,那么贪心法一般是解决这个问题的最好办法。由于贪心法的高效性以及其所求得的答案比较接近最优结果,贪心法也可以用作辅助算法或者直接解决一些要求结果不特别精确的问题。.

查看 算法和贪心法

輾轉相除法

在数学中,辗转相除法,又称欧几里得算法(Euclidean algorithm),是求最大公约数的算法。辗转相除法首次出现于欧几里得的《几何原本》(第VII卷,命题i和ii)中,而在中国则可以追溯至东汉出现的《九章算术》。 两个整数的最大公约数是能够同时整除它们的最大的正整数。辗转相除法基于如下原理:两个整数的最大公约数等于其中较小的数和两数的差的最大公约数。例如,252和105的最大公约数是21();因为,所以147和105的最大公约数也是21。在这个过程中,较大的数缩小了,所以继续进行同样的计算可以不断缩小这两个数直至其中一个变成零。这时,所剩下的还没有变成零的数就是两数的最大公约数。由辗转相除法也可以推出,两数的最大公约数可以用两数的整数倍相加来表示,如。这个重要的結論叫做貝祖定理。 辗转相除法最早出现在欧几里得的《几何原本》中(大约公元前300年),所以它是现行的算法中歷史最悠久的。这个算法原先只用来处理自然数和几何长度(相當於正實數),但在19世纪,辗转相除法被推广至其他类型的數學對象,如高斯整数和一元多项式。由此,引申出欧几里得整环等等的一些现代抽象代数概念。后来,辗转相除法又扩展至其他数学领域,如纽结理论和多元多项式。 辗转相除法有很多应用,它甚至可以用来生成全世界不同文化中的传统音乐节奏。在现代密码学方面,它是RSA算法(一种在电子商务中广泛使用的公钥加密算法)的重要部分。它还被用来解丢番图方程,比如寻找满足中国剩余定理的数,或者求有限域中元素的逆。辗转相除法还可以用来构造连分数,在施图姆定理和一些整数分解算法中也有应用。辗转相除法是现代数论中的基本工具。 辗转相除法处理大数时非常高效,如果用除法而不是减法实现,它需要的步骤不会超过较小数的位数(十进制下)的五倍。拉梅于1844年证明了这点,同時這也標誌著计算复杂性理论的開端。.

查看 算法和輾轉相除法

输出设备

在计算领域,是一种计算机硬件,根据从(如计算机或资讯设备)中接收到的数据和指令执行特定任务。 输出的类型包括文本、图形、触觉、音频、视频等。.

查看 算法和输出设备

输入设备

在计算领域,是一种计算机硬件,用于向(如计算机或资讯设备)提供数据和控制信号。 键盘、鼠标、扫描仪、数码相机、手柄等都是输入设备。.

查看 算法和输入设备

迭代

迭代是重复反馈过程的活动,其目的通常是为了接近并到达所需的目标或结果。每一次对过程的重复被称为一次“迭代”,而每一次迭代得到的结果会被用来作为下一次迭代的初始值。.

查看 算法和迭代

霍夫曼编码

霍夫曼編碼(Huffman Coding),又譯為哈夫曼编码、赫夫曼编码,是一種用於无损数据压缩的熵編碼(權編碼)演算法。由美國計算機科學家大衛·霍夫曼(David Albert Huffman)在1952年發明。.

查看 算法和霍夫曼编码

阿隆佐·邱奇

阿隆佐·邱奇(Alonzo Church,)是美国数学家,1936年发表可计算函数的第一份精确定义,对算法理论的系统发展做出巨大贡献。邱奇在普林斯顿大学受教并工作四十年,曾任数学与哲学教授。1967年迁往加利福尼亚大学洛杉矶分校。 解决算法问题包括构造一个能解决某一指定集及其他相关集的算法,如果该算法无法构建,则表明该问题是不可解的。证明此种问题不可解性的定理是算法理论中的一大突破,邱奇的算法即为该类算法的首例。邱奇证明了基本几何问题的算法不可解性。同时证明了一阶逻辑中真命题全集的解法问题是不可解的。.

查看 算法和阿隆佐·邱奇

邱奇-图灵论题

邱奇-图灵论题(Church–Turing thesis,又称邱奇-图灵猜想,邱奇论题,邱奇猜想,图灵论题)是一个关于可计算性理论的假设。该假设论述了关于函数特性的,可有效计算的函数值(用更现代的表述来说--在算法上可计算的)。简单来说,邱奇-图灵论题认为“任何在算法上可计算的问题同样可由图灵机计算”。 20世纪上半叶,对可计算性进行公式化表示的尝试有:.

查看 算法和邱奇-图灵论题

艾伦·图灵

艾伦·麦席森·图灵,OBE,FRS(Alan Mathison Turing,又译阿兰·图灵,Turing也常翻譯成--林或者杜林,)是英国計算機科學家、数学家、邏輯學家、密码分析学家和理论生物学家,他被视为计算机科学與人工智慧之父。 在第二次世界大战期间,图灵曾在“政府密码学校”(GC&CS,今政府通信总部)工作。政府密码学校位于布萊切利園,是英国顶级机密情报机构。图灵在这里从事密码破译工作,有一段时间,他领导了(Hut 8)小组,负责德国海军密码分析。 期间他设计了一些加速破译德国密码的技术,包括改进波兰战前研制的机器,一种可以找到恩尼格玛密码机设置的机电机器。 图灵在破译截获的编码信息方面发挥了关键作用,使盟军能够在包括大西洋战役在内的许多重要交战中击败纳粹,并因此帮助赢得了战争。 图灵对于人工智能的发展有诸多贡献,例如图灵曾写过一篇名为《》的论文,提問「机器会思考吗?」(Can Machines Think?),作為一种用于判定机器是否具有智能的测试方法,即图灵测试。至今,每年都有试验的比赛。此外,图灵提出的著名的图灵机模型为现代计算机的逻辑工作方式奠定了基础。 图灵是著名的男同性恋者,并因为其性倾向而遭到当时的英国政府迫害,职业生涯尽毁。他亦患有花粉过敏症。 图灵还是一位世界级的长跑运动员。他的马拉松最好成绩是2小時46分03秒(手動計時),比1948年奥林匹克运动会金牌成绩慢11分钟。1948年的一次跨国赛跑比赛中,他跑赢了同年奥运会银牌得主。.

查看 算法和艾伦·图灵

英国

大不列颠及北爱尔兰联合王国(United Kingdom of Great Britain and Northern Ireland),简称联合王国(United Kingdom,缩写作 UK)或不列颠(Britain),中文通称英国(中文世界早期亦称英联王国),是本土位於西歐並具有海外領地的主權國家,英國為世界七大國之一,位于欧洲大陆西北面,由大不列颠岛、爱尔兰岛东北部分及一系列较小岛屿共同组成。英国和另一国家唯一的陆上国境线位于北爱尔兰,和爱尔兰共和国相邻。英国由大西洋所环绕,东为北海,南为英吉利海峡,西南偏南为凯尔特海,同爱尔兰隔爱尔兰海相望。该国总面积达,为世界面积第80大的主权国家及欧洲面积第11大的主权国家,人口6510万,为全球第21名及歐洲第3名。 英国为君主立宪国家,采用议会制进行管辖。其首都伦敦为全球城市A++级别和国际金融中心,大都会区人口达1380万,为欧洲第三大和欧盟第一大。现在位英国君主为女王伊丽莎白二世,1952年2月6日即位。英国由四个构成国组成,分别为英格兰、苏格兰、威尔士和北爱尔兰,其中后三者在权力下放体系之下各自拥有一定的权力。三地首府分别为爱丁堡、加的夫和贝尔法斯特。附近的马恩岛、根西行政区及泽西行政区并非联合王国的一部分,而为王冠属地,英国政府负责其国防及外交事务。 英国的构成国之间的关系在历史上经历了一系列的发展。英格兰王国通过1535年和1542年的《联合法令》将威尔士纳入其领土范围。1707年的条约使英格兰和苏格兰王国联合成为大不列颠王国,而1801年后者则进一步同爱尔兰王国联合成为大不列颠及爱尔兰联合王国。1922年,爱尔兰的六分之五脱离联邦,由此便有了今日的大不列颠及北爱尔兰联合王国。大不列颠及北爱尔兰联合王国亦有14块海外领地,为往日帝国的遗留部分。大英帝国在1921年达到其巅峰,拥有全球22%的领土,是有史以来面积最大的帝国。英国在语言、文化和法律体系上对其前殖民地保留了一定的影响力,因而吸引許多以前英聯邦的移民前來居住。 英国为发达国家,以名义GDP为量度为世界第五大经济体,以购买力平价为量度为世界第九大经济体。英国同时还是世界首个工业化国家,在1815年-1914年为世界第一强国,现今仍是強國之一,在全球范围内的经济、文化、军事、科技和政治上有显著影响力。英国为国际公认的有核国家,其军事开支位列全球第五 (IISS)。自1946年以来,英国即为联合国安全理事会常任理事国,而自1973年以来即为欧洲联盟(EU)及其前身欧洲经济共同体(EEC)的成员国,同时还为英联邦、欧洲委员会、七国财长峰会、七国集团、二十国集团、北大西洋公约组织、经济合作与发展组织和世界贸易组织成员国。2016年英國脫離歐盟公投中,英国民众决定脱离欧盟,但因間接影響全球經濟,所以並未得到多數國家支持。.

查看 算法和英国

電子計算機

--,亦稱--,计算机是一种利用数字电子技术,根据一系列指令指示其自动执行任意算术或逻辑操作序列的设备。计算机遵循被称为“程序”的一般操作集的能力使他们能够执行极其广泛的任务。 计算机被用作各种工业和消费设备的控制系统。这包括简单的特定用途设备(如微波炉和遥控器)、工业设备(如工业机器人和计算机辅助设计),以及通用设备(如个人电脑和智能手机之类的移动设备)等。尽管计算机种类繁多,但根据图灵机理论,一部具有最基本功能的计算机,应当能够完成任何其它计算机能做的事情。因此,理论上从智能手机到超级计算机都应该可以完成同样的作业(不考虑时间和存储因素)。由于科技的飞速进步,下一代计算机总是在性能上能够显著地超过其前一代,这一现象有时被称作“摩尔定律”。通过互联网,计算机互相连接,极大地提高了信息交换速度,反过来推动了科技的发展。在21世纪的现在,计算机的应用已经涉及到方方面面,各行各业了。 自古以来,简单的手动设备——就像算盘——帮助人们进行计算。在工业革命初期,各式各样的机械的出现,其初衷都是为了自动完成冗长而乏味的任务,例如织机的编织图案。更复杂的机器在20世纪初出现,通过模拟电路进行复杂特定的计算。第一台数字电子计算机出现于二战期间。自那时以来,电脑的速度,功耗和多功能性不断增加。在现代,机械计算--机的应用已经完全被电子计算机所取代。 计算机在组成上形式不一,早期计算机的体积足有一间房屋的大小,而今天某些嵌入式计算机可能比一副扑克牌还小。当然,即使在今天依然有大量体积庞大的巨型计算机为特别的科学计算或面向大型组织的事务处理需求服务。比较小的,为个人应用而设计的称为微型计算机(Personal Computer,PC),在中國地區简称為「微机」。我們今天在日常使用“计算机”一词时通常也是指此,不过现在计算机最为普遍的应用形式却是嵌入式,嵌入式计算机通常相对简单、体积小,并被用来控制其它设备——无论是飞机、工业机器人还是数码相机。 同计算机相关的技术研究叫计算--机科学,而「计算机技术」指的是将计算--机科学的成果应用于工程实践所派生的诸多技术性和经验性成果的总合。「计算机技术」与「计算机科学」是两个相关而又不同的概念,它们的不同在于前者偏重于实践而后者偏重于理论。至於由数据为核心的研究則称為信息技术。 传统上,现代计算机包括至少一个处理单元(通常是中央处理器(CPU))和某种形式的存储器。处理元件执行算术和逻辑运算,并且排序和控制单元可以响应于存储的信息改变操作的顺序。外围设备包括输入设备(键盘,鼠标,操纵杆等)、输出设备(显示器屏幕,打印机等)以及执行两种功能(例如触摸屏)的输入/输出设备。外围设备允许从外部来源检索信息,并使操作结果得以保存和检索。.

查看 算法和電子計算機

雅克·埃尔布朗

雅克·埃尔布朗(Jacques Herbrand,),法国数学家。生于巴黎。毕业于巴黎高等师范学校学习,21岁获博士学位,后出国到德国游学。游学期间与冯·诺伊曼、阿廷、诺特等人相识。1931年夏在阿尔卑斯山爬山时,不幸遇险身亡,年仅23岁。 埃尔布朗的主要贡献在数理逻辑和类域论,发明了递归函数。他建立的埃尔布朗定理是量化理论的一个基本命题,已成为机器证明的基础。在近世代数方面,他发表了十几篇有关类域论的论文,丰富了代数数域的阿贝尔扩张理论。.

查看 算法和雅克·埃尔布朗

逻辑学家

逻辑学家是学术研究主题为逻辑学的哲学家,数学家或其他人。下面按姓氏的英语的字母顺序列出著名的逻辑学家。.

查看 算法和逻辑学家

递归

递归(Recursion),又译为--,在数学与计算机科学中,是指在函数的定义中使用函数自身的方法。递归一词还较常用于描述以自相似方法重复事物的过程。例如,当两面镜子相互之间近似平行时,镜中嵌套的图像是以无限递归的形式出现的。也可以理解为自我复制的过程。.

查看 算法和递归

递归 (计算机科学)

遞迴(recursion)在電腦科學中是指一種通過重複將問題分解為同類的子問題而解決問題的方法。 遞迴式方法可以被用於解決很多的電腦科學問題,因此它是電腦科學中十分重要的一個概念。 絕大多數程式語言支援函式的自呼叫,在這些語言中函式可以通過呼叫自身來進行遞迴。計算理論可以證明遞迴的作用可以完全取代迴圈,因此在很多函數程式語言(如Scheme)中習慣用遞迴來實現迴圈。 電腦科學家尼克勞斯·維爾特如此描述遞迴:.

查看 算法和递归 (计算机科学)

抽象機器

抽象機器(Abstract machine),又稱抽象電腦(abstract computer),利用自動機理論,建立出電腦硬體或軟體的理論模型。把運算過程抽象化,一般來說是採用離散時間模型,可應用於電腦科學或電腦工程。在計算理論中,抽象機器經常被當成是一種思想實驗,用來推論可計算性(computability),或是分析演算法的複雜度。 Category:离散数学 Category:計算理論.

查看 算法和抽象機器

查尔斯·巴贝奇

查尔斯·巴贝奇(;),英国数学家、發明家兼機械工程師。由於提出了差分機與分析機的設計概念(並有部份實做機器),被視為计算机先驱。 1828年至1839年,巴貝奇曾在劍橋大學擔任盧卡斯教授。 除了數學和計算機之外,巴贝奇也是當時重要的經濟學者之一。 他還参与了一些政治活动,但是這方面頗不成功。.

查看 算法和查尔斯·巴贝奇

枚举

在数学和计算机科学理论中,一个集的枚举是列出某些有穷序列集的所有成员的程序,或者是一种特定类型对象的计数。这两种类型经常(但不总是)重叠。 枚举是一个被命名的整型常数的集合,枚举在日常生活中很常见,例如表示星期的SUNDAY、MONDAY、TUESDAY、WEDNESDAY、THURSDAY、FRIDAY、SATURDAY就是一个枚举。 枚举的说明与结构和联合相似,其形式为: enum 枚举名枚举变量; 如果枚举没有初始化,即省掉".

查看 算法和枚举

排序算法

在計算機科學與數學中,一個排序算法(Sorting algorithm)是一種能將一串資料依照特定排序方式进行排列的一種算法。最常用到的排序方式是數值順序以及字典順序。有效的排序算法在一些算法(例如搜尋算法與合併算法)中是重要的,如此這些算法才能得到正確解答。排序算法也用在處理文字資料以及產生人類可讀的輸出結果。基本上,排序算法的輸出必須遵守下列兩個原則:.

查看 算法和排序算法

搜索 (计算机)

在人工智能中,搜索问题一般包括两个重要的问题:.

查看 算法和搜索 (计算机)

杨辉

杨辉(約1238年-約1298年),字謙光,錢塘(今浙江杭州)人,是中國南宋時期数学家。楊輝生於約宋理宗嘉熙二年(1238年),終於約元成宗大德二年(1298年)。他著有《詳解九章算法》12卷、《日用算法》192卷、《乘除通變算寶》3卷、《田畝比類乘除捷法》2卷、《續古摘奇算法》2卷及《九章算法篡類》、《杨辉算法》等多本算法的著作。另一方面,他在宋度宗咸淳年间的兩本著作裡,亦有提及當時南宋的土地價格。這些資料亦對後世史學家瞭解南宋經濟發展有很重要的幫助。 楊輝在著作中收錄了不少現已失傳的、古代各類數學著作中很有價值的算題和算法,保存了許多十分寶貴的宋代數學史料。他對任意高次冪的開方計算、二項展開式、高次方程的求解、高階等差級數、縱橫圖等問題,都有精到的研究。楊輝十分留心數學教育,並在自己的實踐中貫徹其教育思想。楊輝更對於垛積問題(高階等差級數)及幻方、幻圆作過詳細的研究。 由於他在他的著作裡提及過賈憲對二項展開式的研究,所以“賈憲三角”又名“楊輝三角”。這比歐洲於17世紀的同類型的研究“帕斯卡三角形”早了差不多五百年。在《乘除通變算寶》中,楊輝創立了“九歸”口訣,介紹了籌算乘除的各種速算法等等。這些在中國數學史上,都佔有重要的地位。 在《續古摘奇算法》中,楊輝列出了各式各樣的縱橫圖(幻方),它是宋代研究幻方和幻圆的最重要的著述。楊輝對中國古代的幻方,不僅有深刻的研究,而且還創造了一个名为攒九图的四阶同心幻圆和多个连环幻圆。.

查看 算法和杨辉

杨辉算法

《杨辉算法》是宋代数学家杨辉的三种后期六卷数学著作的总称,这三种著作是《乘除通变算宝》卷上下、《田亩比类乘除捷法》卷上中下、和《续古摘奇算法》。.

查看 算法和杨辉算法

树的遍历

在计算机科学里,树的遍历(也称为树的搜索)是圖的遍歷的一种,指的是按照某种规则,不重复地访问某种樹的所有节点的过程。具体的访问操作可能是检查节点的值、更新节点的值等。不同的遍历方式,其访问节点的顺序是不一样的。以下虽然描述的是二叉树的遍历算法,但它们也适用于其他树形结构。.

查看 算法和树的遍历

波斯

在的伊朗在世界上的位置 波斯是伊朗在欧洲的古希腊语和拉丁语的旧称译音,是伊朗歷史的一部份。历史上在这一西南亚地区曾建立过多个的帝国。全盛時期領土東至印度河平原,西北至小亚细亚、欧洲的马其顿、希腊半岛、色雷斯,西南至埃及或也门。波斯兴起于伊朗高原的西南部。.

查看 算法和波斯

深度优先搜索

深度优先搜索算法(Depth-First-Search,DFS)是一种用于遍历或搜索树或图的算法。沿着树的深度遍历树的节点,尽可能深的搜索树的分支。当节点v的所在边都己被探寻过,搜索将回溯到发现节点v的那条边的起始节点。这一过程一直进行到已发现从源节点可达的所有节点为止。如果还存在未被发现的节点,则选择其中一个作为源节点并重复以上过程,整个进程反复进行直到所有节点都被访问为止。属于盲目搜索。 深度优先搜索是图论中的经典算法,利用深度优先搜索算法可以产生目标图的相应拓扑排序表,利用拓扑排序表可以方便的解决很多相关的图论问题,如最大路径问题等等。 因发明“深度优先搜索算法”,約翰·霍普克洛夫特与罗伯特·塔扬共同获得计算机领域的最高奖:图灵奖。.

查看 算法和深度优先搜索

机械

機械是由機械結構(機構)組成,機械結構再由機械元件(构件)組成,是機械工程學的一個基本概念。機械就是能幫助人們節省工作難度或省力的工具裝置。有一些機械單純轉換力的大小或(及)方向,被稱為簡單機械。而複雜機械就是由二種或二種以上的簡單機械構成(是真的).

查看 算法和机械

最大公因數

数学中,兩個或多個整數的最大公因數(greatest common factor,hcf)指能够整除这些整数的最大正整数(这些整数不能都为零)。例如8和12的最大公因数为4。最大公因数也称最大公约数(greatest common divisor,gcd)。 整数序列a的最大公因数可以記為(a_1, a_2, \dots, a_n)或\gcd(a_1, a_2, \dots, a_n)。 求兩個整數最大公因數主要的方法:.

查看 算法和最大公因數

最小生成树

最小生成树是一副连通加权无向图中一棵权值最小的生成树。 在一給定的無向圖 G.

查看 算法和最小生成树

最短路问题

最短路径问题是图论研究中的一个经典算法问题,旨在寻找图(由结点和路径组成的)中两结点之间的最短路径。算法具体的形式包括:.

查看 算法和最短路问题

斯蒂芬·科尔·克莱尼

斯蒂芬·科尔·克莱尼(Stephen Cole Kleene,)美國數學家、逻辑學家,主要从事對可計算函數的研究,而他的遞歸理論研究有助於奠定理論電腦科學的基礎。他為數學直覺主義的基礎做出了重要貢獻,克莱尼層次結構、克莱尼代数、克莱尼星号(克莱尼閉包)、克莱尼遞歸定理和克莱尼不動點定理數學概念以他的名字命名。他也是正規表示法的發明者。.

查看 算法和斯蒂芬·科尔·克莱尼

时间复杂度

在计算机科学中,算法的时间复杂度是一个函数,它定性描述该算法的运行时间。这是一个代表算法输入值的字符串的长度的函数。时间复杂度常用大O符号表述,不包括这个函数的低阶项和首项系数。使用这种方式时,时间复杂度可被称为是渐近的,亦即考察输入值大小趋近无穷时的情况。例如,如果一个算法对于任何大小为 n (必須比 n0 大)的输入,它至多需要 的时间运行完毕,那么它的渐近时间复杂度是 O(n3)。 為了計算時間複雜度,我們通常會估計算法的操作單元數量,每個單元執行的時間都是相同的。因此,總運行時間和算法的操作單元數量最多相差一个常量系数。 相同大小的不同輸入值仍可能造成算法的執行時間不同,因此我們通常使用算法的,記為 T(n) ,定義為任何大小的輸入 n 所需的最大執行時間。另一種較少使用的方法是,通常有特別指定才會使用。時間複雜度可以用函數 T(n) 的自然特性加以分類,舉例來說,有著 T(n).

查看 算法和时间复杂度

愛達·勒芙蕾絲

勒芙蕾絲伯爵夫人奧古斯塔·愛達·金·諾爾(Augusta Ada King-Noel, Countess of Lovelace,1815年12月10日-1852年11月27日),原姓拜倫(Byron),是一位英國數學家與作家,代表作是她為查爾斯·巴貝奇的分析機——機械式通用電腦——所寫的註記。她是第一位主張電腦不只可以用來數學計算的人,也發表了第一段分析機用的演算法。因此,愛達被公認為史上第一位電腦程式設計師。 愛達·勒芙蕾絲是名詩人拜倫的唯一婚生子,母親為溫特沃斯女爵。拜倫的其他子女都是和其他女人間的非婚生子。愛達出生週月父母離異。四個月後拜倫離開英國,一去不歸。拜倫在詩中寫著:「我的嬌女,妳的容顏是否如母?愛達,我屋簷下、我心中唯一的女兒。」愛達八歲時,拜倫在希臘獨立戰爭中病死。愛達母親始終痛恨拜倫,致力栽培愛達的數學和科學興趣,以免愛達陷入她眼中拜倫的瘋狂下場。但愛達終究很在意父親,過世時要求要葬在父親身旁。愛達童年多病。1835年愛達與威廉·金結婚,威廉·金於1838年受封勒芙蕾絲伯爵,她成為勒芙蕾絲伯爵夫人。 因為她的家庭與教育環境,她認識許多科學家,如、大衛·布儒斯特爵士、查爾斯·惠斯通和作家狄更斯,跟著他們進修。愛達自稱是「分析家(與形上學家)」,並自稱在從事「詩意科學」。 十幾歲時,因著她的數學天份,愛達認識了後世稱為「電腦之父」的查爾斯・巴貝奇,並參與了巴貝奇的分析機。愛達在1833年透過家教瑪麗·薩默維爾的關係,認識了巴貝奇。 在1842到1843年間,她翻譯了一篇義大利軍事工程師費德里科·路易吉闡述分析機的文章,並加上長篇的筆記(篇名就叫《筆記》)。愛達的筆記裡,包含了後世很多人公認的第一段電腦程式—一段分析機用的演算法。愛達的筆記對早期電腦發展史非常重要。此外,當巴貝奇等同時代學者,只關心電腦的數學運算力時,愛達已經預見了電腦廣泛應用的未來。她在筆記中以她的「詩意科學」思考分析機,研究個人和社會,如何透過科技協同工作。 愛達在1852年因子宮癌逝世,享年36歲。.

查看 算法和愛達·勒芙蕾絲

数学

数学是利用符号语言研究數量、结构、变化以及空间等概念的一門学科,从某种角度看屬於形式科學的一種。數學透過抽象化和邏輯推理的使用,由計數、計算、量度和對物體形狀及運動的觀察而產生。數學家們拓展這些概念,為了公式化新的猜想以及從選定的公理及定義中建立起嚴謹推導出的定理。 基礎數學的知識與運用總是個人與團體生活中不可或缺的一環。對數學基本概念的完善,早在古埃及、美索不達米亞及古印度內的古代數學文本便可觀見,而在古希臘那裡有更為嚴謹的處理。從那時開始,數學的發展便持續不斷地小幅進展,至16世紀的文藝復興時期,因为新的科學發現和數學革新兩者的交互,致使數學的加速发展,直至今日。数学并成为許多國家及地區的教育範疇中的一部分。 今日,數學使用在不同的領域中,包括科學、工程、醫學和經濟學等。數學對這些領域的應用通常被稱為應用數學,有時亦會激起新的數學發現,並導致全新學科的發展,例如物理学的实质性发展中建立的某些理论激发数学家对于某些问题的不同角度的思考。數學家也研究純數學,就是數學本身的实质性內容,而不以任何實際應用為目標。雖然許多研究以純數學開始,但其过程中也發現許多應用之处。.

查看 算法和数学

数列

数列(Sequence of number)是一组兩個以上按顺序排列的数(由數組成的序列),记为\\,\!。\.

查看 算法和数列

数值分析

数值分析(numerical analysis),是指在数学分析(区别于离散数学)问题中,对使用数值近似(相对于一般化的符号运算)算法的研究。 巴比伦泥板YBC 7289是关于数值分析的最早数学作品之一,它给出了 \sqrt 在六十进制下的一个数值逼近,\sqrt是一個邊長為1的正方形的對角線,在西元前1800年巴比倫人也已在巴比倫泥板上計算勾股數(畢氏三元數)(3, 4, 5),即直角三角形的三邊長比。 数值分析延續了實務上數學計算的傳統。巴比倫人利用巴比伦泥板計算\sqrt的近似值,而不是精確值。在許多實務的問題中,精確值往往無法求得,或是無法用有理數表示(如\sqrt)。数值分析的目的不在求出正確的答案,而是在其誤差在一合理範圍的條件下找到近似解。 在所有工程及科學的領域中都會用到数值分析。像天體力學研究中會用到常微分方程,最優化會用在资产组合管理中,數值線性代數是資料分析中重要的一部份,而隨機微分方程及馬可夫鏈是在醫藥或生物學中生物細胞模擬的基礎。 在電腦發明之前,数值分析主要是依靠大型的函數表及人工的內插法,但在二十世紀中被電腦的計算所取代。不過電腦的內插演算法仍然是数值分析軟體中重要的一部份。.

查看 算法和数值分析

数据结构

在计算机科学中,数据结构(data structure)是计算机中存储、组织数据的方式。 数据结构意味着介面或封装:一个数据结构可被视为两个函数之间的介面,或者是由数据类型联合组成的存储内容的访问方法封装。 大多数数据结构都由数列、记录、可辨识联合、引用等基本类型构成。举例而言,可為空的引用(nullable reference)是引用与可辨识联合的结合体,而最简单的链式结构链表则是由记录与可空引用构成。 数据结构可透过程式语言所提供的数据类型、引用及其他操作加以实现。一个设计良好的数据结构,应该在尽可能使用较少的时间与空间资源的前提下,支援各種程式執行。 不同种类的数据结构适合不同种类的应用,部分資料結構甚至是為了解決特定問題而設計出來的。例如B树即為加快樹狀結構存取速度而設計的資料結構,常被應用在資料庫和檔案系統上。 正確的数据结构選擇可以提高演算法的效率(請參考)。在電腦程式设计的過程裡,选择适当的数据结构是一項重要工作。许多大型系统的編寫经验顯示,程式設計的困难程度与最终成果的质量与表现,取决于是否选择了最適合的数据结构。 系統架構的关键因素是数据结构而非算法的見解,导致了多种形式化的设计方法与编程语言的出现。绝大多数的语言都带有某种程度上的模块化思想,透过将数据结构的具体实现封装隐藏于使用者介面之后的方法,来让不同的应用程序能够安全地重用这些数据结构。C++、Java、Python等面向对象的编程语言可使用类 (计算机科学)来達到這個目的。 因为数据结构概念的普及,现代编程语言及其API中都包含了多种預設的数据结构,例如 C++ 标准模板库中的容器、Java集合框架以及微软的.NET Framework。.

查看 算法和数据结构

另见

理论计算机科学

亦称为 演算法,计算机算法。

计算机程序设计艺术贪心法輾轉相除法输出设备输入设备迭代霍夫曼编码阿隆佐·邱奇邱奇-图灵论题艾伦·图灵英国電子計算機雅克·埃尔布朗逻辑学家递归递归 (计算机科学)抽象機器查尔斯·巴贝奇枚举排序算法搜索 (计算机)杨辉杨辉算法树的遍历波斯深度优先搜索机械最大公因數最小生成树最短路问题斯蒂芬·科尔·克莱尼时间复杂度愛達·勒芙蕾絲数学数列数值分析数据结构