演算法的特性
⑴ 演算法的基本特性是什麼
演算法的基本特性
1、有窮性
演算法的有窮性是指演算法必須能在執行有限個步驟之後終止;
2、確切性
演算法的每一步驟必須有確切的定義;
3、輸入項
一個演算法有0個或多個輸入,以刻畫運算對象的初始情況,所謂0個輸入是指演算法本身定出了初始條件;
4、輸出項
一個演算法有一個或多個輸出,以反映對輸入數據加工後的結果。沒有輸出的演算法是毫無意義的;
5、可行性
演算法中執行的任何計算步驟都是可以被分解為基本的可執行的操作步驟,即每個計算步驟都可以在有限時間內完成(也稱之為有效性)。
演算法可以宏泛得分為三類
一、有限的,確定性演算法 這類演算法在有限的一段時間內終止。他們可能要花很長時間來執行指定的任務,但仍將在一定的時間內終止。這類演算法得出的結果常取決於輸入值。
二、有限的,非確定演算法 這類演算法在有限的時間內終止。然而,對於一個(或一些)給定的數值,演算法的結果並不是唯一的或確定的。
三、無限的演算法 是那些由於沒有定義終止定義條件,或定義的條件無法由輸入的數據滿足而不終止運行的演算法。通常,無限演算法的產生是由於未能確定的定義終止條件。
⑵ 演算法的基本特徵是
演算法
3分鍾了解今日頭條演算法原理(科普版)
02:43
什麼是演算法
04:28
概述
歷史發展
演算法分類
演算法特徵
演算法要素
演算法評定
目錄
1摘要
2基本信息
3概述
4歷史發展
5演算法分類
6演算法特徵
7演算法要素
數據的運算和操作
演算法的控制結構
8演算法評定
9描述方式
10史料記載
11基本方法
12參考資料
演算法是指解題方案的准確而完整的描述,是一系列解決問題的清晰指令,演算法代表著用系統的方法描述解決問題的策略機制;它是求解問題類的、機械的、統一的方法,常用於計算、數據處理(英語:Data processing)和自動推理。可以理解為有基本運算及規定的運算順序所構成的完整的解題步驟。或者看成按照要求設計好的有限的確切的計算序列,並且這樣的步驟和序列可以解決一類問題。
演算法中的指令描述的是一個計算,當其運行時能從一個初始狀態和(可能為空的)初始輸入開始,經過一系列有限而清晰定義的狀態,最終產生輸出並停止於一個終態。一個狀態到另一個狀態的轉移不一定是確定的。隨機化演算法在內的一些演算法,包含了一些隨機輸入。
基本信息
中文名
演算法
外文名
Algorithm
拼音
suanfa
出處
數學 計算機
定義
是指解題方案的准確而完整的描述,是一系列解決問題的清晰指令,演算法代表著用系統的方法描述解決問題的策略機制
展開全部
概述
求解問題類的、機械的、統一的方法,它由有限多個步驟組成,對於問題類中的每個給定的具體問題,機械地執行這些步驟就可以得到問題的解答。演算法的這種特性,使得計算不僅可以由人,而且可以由計算機來完成。用計算機解決問題的過程可以分成三個階段:分析問題、設計演算法和實現演算法。[1]
歷史發展
中國古代的籌算口決與珠算口決及其執行規則就是演算法的雛形,這里,所解決的問題類是算術運算。古希臘數學家歐幾里得在公元前3世紀就提出了一個演算法,來尋求兩個正整數的最大公約數,這就是有名的歐幾里得演算法,亦稱輾轉相除法。中國早已有「算術「、「演算法」等詞彙,但是它們的含義是指當時的全部數學知識和計算技能,與現代演算法的含義不盡相同。英文algorithm(演算法)一詞也經歷了一個演變過程,最初的拼法為algorism或algoritmi,原意為用阿拉伯數字進行計算的過程。這個詞源於公元 9世紀波斯數字家阿爾·花拉子米的名字的最後一部分。[1]
在古代,計算通常是指數值計算。現代計算已經遠遠地突破了數值計算的范圍,包括大量的非數值計算,例如檢索、表格處理、判斷、決策、形式邏輯演繹等。
在20世紀以前,人們普遍地認為,所有的問題類都是有演算法的。20世紀初,數字家們發現有的問題類是不存在演算法的,遂開始進行能行性研究。在這一研究中,現代演算法的概念逐步明確起來。30年代,數字家們提出了遞歸函數、圖靈機等計算模型,並提出了丘奇-圖靈論題(見可計算性理論),這才有可能把演算法概念形式化。按照丘奇-圖靈論題,任意一個演算法都可以用一個圖靈機來實現,反之,任意一個圖靈機都表示一個演算法。
按照上述理解,演算法是由有限多個步驟組成的,它有下述兩個基本特徵:每個步驟都明確地規定要執行何種操作;每個步驟都可以被人或機器在有限的時間內完成。人們對於演算法還有另一種不同的理解,它要求演算法除了上述兩個基本特徵外,還要具有第三個基本特徵:雖然有些步驟可能被反復執行多次,但是在執行有限多次之後,就一定能夠得到問題的解答。也就是說,一個處處停機(即對任意輸入都停機)的圖靈機才表示一個演算法,而每個演算法都可以被一個處處停機的圖靈機來實現[1]
演算法分類
演算法可大致分為基本演算法、數據結構的演算法、數論與代數演算法、計算幾何的演算法、圖論的演算法、動態規劃以及數值分析、加密演算法、排序演算法、檢索演算法、隨機化演算法、並行演算法。[1]
演算法可以宏泛的分為三類:
有限的,確定性演算法 這類演算法在有限的一段時間內終止。他們可能要花很長時間來執行指定的任務,但仍將在一定的時間內終止。這類演算法得出的結果常取決於輸入值。
有限的,非確定演算法 這類演算法在有限的時間內終止。然而,對於一個(或一些)給定的數值,演算法的結果並不是唯一的或確定的。
無限的演算法 是那些由於沒有定義終止定義條件,或定義的條件無法由輸入的數據滿足而不終止運行的演算法。通常,無限演算法的產生是由於未能確定的定義終止條件。[1]
演算法特徵
1、輸入項:一個演算法有零個或多個輸入,以刻畫運算對象的初始情況。例如,在歐幾里得演算法中,有兩個輸入,即m和n。[1]
2、確定性:演算法的每一個步驟必須要確切地定義。即演算法中所有有待執行的動作必須嚴格而不含混地進行規定,不能有歧義性。例如,歐幾里得演算法中,步驟1中明確規定「以m除以n,而不能有類似以m除n以或n除以m這類有兩種可能做法的規定。
3、有窮性:一個演算法在執行有窮步滯後必須結束。也就是說,一個演算法,它所包含的計算步驟是有限的。例如,在歐幾里得演算法中,m和n均為正整數,在步驟1之後,r必小於n,若r不等於0,下一次進行步驟1時,n的值已經減小,而正整數的遞降序列最後必然要終止。因此,無論給定m和n的原始值有多大,步驟1的執行都是有窮次。
4、輸出:演算法有一個或多個的輸出,即與輸入有某個特定關系的量,簡單地說就是演算法的最終結果。例如,在歐幾里得演算法中只有一個輸出,即步驟2中的n。
5、能行性:演算法中有待執行的運算和操作必須是相當基本的,換言之,他們都是能夠精確地進行的,演算法執行者甚至不需要掌握演算法的含義即可根據該演算法的每一步驟要求進行操作,並最終得出正確的結果。[1]
⑶ 演算法的特徵
一個演算法應該具有以下五個重要的特徵:
1、有窮性(Finiteness)
演算法的有窮性是指演算法必須能在執行有限個步驟之後終止。
2、確切性(Definiteness)
演算法的每一步驟必須有確切的定義。
3、輸入項(Input)
一個演算法有0個或多個輸入,以刻畫運算對象的初始情況,所謂0個輸入是指演算法本身定出了初始條件。
4、輸出項(Output)
一個演算法有一個或多個輸出,以反映對輸入數據加工後的結果。沒有輸出的演算法是毫無意義的。
5、可行性(Effectiveness)
演算法中執行的任何計算步驟都是可以被分解為基本的可執行的操作步驟,即每個計算步驟都可以在有限時間內完成(也稱之為有效性)。
遞歸法
程序調用自身的編程技巧稱為遞歸(recursion)。
一個過程或函數在其定義或說明中有直接或間接調用自身的一種方法,它通常把一個大型復雜的問題層層轉化為一個與原問題相似的規模較小的問題來求解,遞歸策略只需少量的程序就可描述出解題過程所需要的多次重復計算,大大地減少了程序的代碼量。
遞歸的能力在於用有限的語句來定義對象的無限集合。一般來說,遞歸需要有邊界條件、遞歸前進段和遞歸返回段。當邊界條件不滿足時,遞歸前進;當邊界條件滿足時,遞歸返回。
⑷ "演算法"的基本特徵有哪些
一個演算法應該具有以下五個重要的特徵:
1、有窮性: 一個演算法必須保證執行有限步之後結束;
2、確切性: 演算法的每一步驟必須有確切的定義;
3、輸入:一個演算法有0個或多個輸入,以刻畫運算對象的初始情況,所謂0個輸入是指演算法本身定除了初始條件;
4、輸出:一個演算法有一個或多個輸出,以反映對輸入數據加工後的結果。沒有輸出的演算法是毫無意義的;
5、可行性: 演算法原則上能夠精確地運行,而且人們用筆和紙做有限次運算後即可完成
⑸ 演算法的五大特性是什麼
輸入:在演算法中可以有零個或者多個輸入。
輸出:在演算法中至少有一個或者多個輸出。
有窮行:在執行有限的步驟之後,自動結束不會出現無限循環並且每一個步驟在可接受的時間內完成。
確定性:演算法的每一個步驟都具有確定的含義,不會出現二義性。
可行性:演算法的每一步都必須是可行的,也就是說,每一步都能夠通過執行有限的次數完成。
⑹ 演算法具有什麼特徵
一個演算法應該具有以下五個重要的特徵:
1,有窮性(Finiteness):演算法的有窮性是指演算法必須能在執行有限個步驟之後終止;
2,確切性(Definiteness):演算法的每一步驟必須有確切的定義;
3,輸入項(Input):一個演算法有0個或多個輸入,以刻畫運算對象的初始情況,所謂0個輸入是指演算法本身定出了初始條件;
4,輸出項(Output):一個演算法有一個或多個輸出,以反映對輸入數據加工後的結果。沒有輸出的演算法是毫無意義的;
5,可行性(Effectiveness):演算法中執行的任何計算步驟都是可以被分解為基本的可執行的操作步,即每個計算步都可以在有限時間內完成(也稱之為有效性)。
(6)演算法的特性擴展閱讀:
演算法要素:
一,數據對象的運算和操作:計算機可以執行的基本操作是以指令的形式描述的。一個計算機系統能執行的所有指令的集合,成為該計算機系統的指令系統。一個計算機的基本運算和操作有如下四類:
1,算術運算:加減乘除等運算
2,邏輯運算:或、且、非等運算
3,關系運算:大於、小於、等於、不等於等運算
4,數據傳輸:輸入、輸出、賦值等運算
二,演算法的控制結構:一個演算法的功能結構不僅取決於所選用的操作,而且還與各操作之間的執行順序有關。
⑺ 演算法的性質有哪些
演算法的一般性質包括:
(1) 通用性 對於那些符合輸入類型的任意輸入數據,都能根據演算法進行問題求解,包保證計算結構的正確性。
(2) 有效性 組成演算法的每一條指令都必須是能夠被人或機器確切執行的。
(3) 確定性 演算法每執行一步之後,對於它的下一步,應該有明確的指示。即,保證每一步之後都有關於下一步動作的指令,不能缺乏下一步指令或僅僅含有模糊不清的指令。
(4) 有窮性 演算法的執行必須在有限步內結束。
⑻ 演算法的主要特徵
演算法是一個有窮規則的集合,這些規則確定了解決某類問題的一個運算序列。對於該類問題的任何初始輸入值,它都能機械地一步一步地執行計算,經過有限步驟後終止計算並產生輸出結果。歸納起來,演算法具有以下基本特徵:
(1) 有窮性:一個演算法必須在執行有限個操作步驟後終止;
(2) 確定性:演算法中每一步的含義必須是確切的,不可出現任何二義性;
(3) 有效性:演算法中的每一步操作都應該能有效執行,一個不可執行的操作是無效的。例如,一個數被0除的操作就是無效的,應當避免這種操作。
(4) 有零個或多個輸入:這里的輸入是指在演算法開始之前所需要的初始數據。這些輸入的多少取決於特定的問題。例如,例l-1的演算法中有2個輸入,即需要輸入a和b兩個初始數據,而例l-2的演算法中則需要輸入四個初始數據。有些特殊演算法也可以沒有輸入。
(5) 有一個或多個輸出:所謂輸出是指與輸入有某種特定關系的量,在一個完整的演算法中至少會有一個輸出。如上述關於演算法的三個例子中,每個都有輸出。試想,如果例1-3中沒有 "輸出n的當前值"這一步,這個演算法將毫無意義。
⑼ 計算機演算法必須具備哪5個特性
1、有窮性。一個演算法應包含有限的操作步驟,而不能是無限的。事實上「有窮性」往往指「在合理的范圍之內」。如果讓計算機執行一個歷時1000年才結束的演算法,這雖然是有窮的,但超過了合理的限度,人們不把他視為有效演算法。
2、確定性。演算法中的每一個步驟都應當是確定的,而不應當是含糊的、模稜兩可的。演算法中的每一個步驟應當不致被解釋成不同的含義,而應是十分明確的。也就是說,演算法的含義應當是唯一的,而不應當產生「歧義性」。
3、有零個或多個輸入性。所謂輸入是指在執行演算法是需要從外界取得必要的信息。
4、有一個或多個輸出。演算法的目的是為了求解,沒有輸出的演算法是沒有意義的。
5、有效性。 演算法中的每一個 步驟都應當能有效的執行。並得到確定的結果。
(9)演算法的特性擴展閱讀
計算機演算法的產生背景:
歐幾里得演算法被人們認為是史上第一個演算法。 第一次編寫程序是Ada Byron於1842年為巴貝奇分析機編寫求解伯努利方程的程序,因此Ada Byron被大多數人認為是世界上第一位程序員。
因為查爾斯·巴貝奇未能完成他的巴貝奇分析機,這個演算法未能在巴貝奇分析機上執行。 因為"well-defined procere"缺少數學上精確的定義,19世紀和20世紀早期的數學家、邏輯學家在定義演算法上出現了困難。
⑽ 演算法特性
A 有窮性
演算法可以通過有限的基本操作來實現,
B不對,因數這里所說的有限次,而並沒有對這有限次的次數給定一個范圍,如果一個密碼需要計算機使用這一演算法計算100年可以算出來,這一演算法還是不可行的。
C、D都不對,因為這里根本沒有對這兩個方面進行描述。