演算法
From Wikipedia, the free encyclopedia
演算法可以喺有限嘅時間同記憶空間之內,透過形式語言(formal language;簡單講就係個個字都有精確定義嘅語言,相對於日常講嘢用嘅自然語言)嚟表達[1],用嚟計某一啲函數:噉講嘅意思係話,一串演算法會要求某啲特定嘅 input,跟住啲命令會描述一柞運算;當呢柞運算由人或者電腦執行嗰陣,會經過一連串數量有限嘅中介狀態[3],最後產生一個 output [4],並且喺呢個最終狀態嗰度終止執行。順帶一提,由一個中介狀態去到下一個嘅過程唔一定係決定性嘅,有好多演算法都涉及一啲帶有隨機性喺入面嘅運算[5][6]。
演算法嘅概念歷史悠久,有得一路追溯到去公元前嘅古希臘:由古希臘數學家諗出嚟嘅愛氏篩同埋係歐幾里得演算法等都可以算係早期演算法嘅例子;而演算法嘅英文名係由 9 世紀嘅波斯人數學家花剌子密(波斯文:محمد بن موسى الخوارزمي)個姓嗰度嚟嘅-佢個姓用羅馬字寫係 algoritmi,花剌子密佢做咗啲相關研究,局部噉確立咗演算法嘅概念;現代嘅演算法概念係喺 1928 年由德國數學家打域囂拔(David Hibert)喺佢嘗試解決可判定性嘅問題嗰陣奠定嘅。自從嗰陣開始,演算法同相關嘅研究就喺數學同電腦科學呢兩個領域嗰度俾人廣泛噉採用[7]。