計算機與演算法
㈠ 計算機演算法指的是什麼
計算機演算法是以一步接一步的方式來詳細描述計算機如何將輸入轉化為所要求的輸出的過程,或者說,演算法是對計算機上執行的計算過程的具體描述。
無論演算法有多麼復雜,都必須在有限步之後結束並終止運行;即演算法的步驟必須是有限的。在任何情況下,演算法都不能陷入無限循環中。演算法必須是由一系列具體步驟組成的,並且每一步都能夠被計算機所理解和執行,而不是抽象和模糊的概念。
演算法首先必須是正確的,即對於任意的一組輸入,包括合理的輸入與不合理的輸入,總能得到預期的輸出。如果一個演算法只是對合理的輸入才能得到預期的輸出,而在異常情況下卻無法預料輸出的結果,那麼它就不是正確的。
(1)計算機與演算法擴展閱讀
特點
1、有窮性。一個演算法應包含有限的操作步驟,而不能是無限的。事實上「有窮性」往往指「在合理的范圍之內」。如果讓計算機執行一個歷時1000年才結束的演算法,這雖然是有窮的,但超過了合理的限度,人們不把他視為有效演算法。
2、確定性。演算法中的每一個步驟都應當是確定的,而不應當是含糊的、模稜兩可的。演算法中的每一個步驟應當不致被解釋成不同的含義,而應是十分明確的。也就是說,演算法的含義應當是唯一的,而不應當產生「歧義性」。
3、有零個或多個輸入。所謂輸入是指在執行演算法是需要從外界取得必要的信息。
4、有一個或多個輸出。演算法的目的是為了求解,沒有輸出的演算法是沒有意義的。
5、有效性。 演算法中的每一個 步驟都應當能有效的執行。並得到確定的結果。
㈡ 計算機的演算法設計和數學的演算法設計有什麼不同
個人覺得微積分與演算法沒啥個關系吧,我同級的那些演算法大神上高數時都紛紛逃課了。演算法,就我知道,主要是要用到離散數學,組合數學之類的,或許還有其它,這些應該比微積分簡單吧。當然,沒學過也沒啥個所謂,因為我自學演算法之前也壓根沒學過這類數學,這類數學只不過使你學演算法時輕松一點,當然直接沒基礎學演算法會讓人痛苦到死
㈢ 在計算機中,演算法是指什麼
演算法(Algorithm)是對問題求解方法的精確描述
,也就是說,能夠對一定規范的輸入,在有限時間內獲得所要求的輸出。如果一個演算法有缺陷,或不適合於某個問題,執行這個演算法將不會解決這個問題。不同的演算法可能用不同的時間、空間或效率來完成同樣的任務。一個演算法的優劣可以用
空間復雜度
與
時間復雜度
來衡量。
演算法可以理解為有基本運算及規定的運算順序所構成的完整的解題步驟。或者看成按照要求設計好的有限的確切的計算序列,並且這樣的步驟和序列可以解決一類問題。
一個演算法應該具有以下五個重要的特徵:
1、
有窮性
:
一個演算法必須保證執行有限步之後結束;
2、
明確性
:
演算法的每一步驟必須意義明確;
3、
輸入
:一個演算法有0個或多個輸入,以刻畫運算對象的初始情況,所謂0個輸入是指演算法本身定除了初始條件;
4、
輸出
:一個演算法有一個或多個輸出,以反映對輸入數據加工後的結果。沒有輸出的演算法是毫無意義的;
5、
可執行性
:
所採用的演算法必須能夠在計算機上執行。
計算機科學家尼克勞斯-沃思曾著過一本著名的書《數據結構十演算法=
程序》,可見演算法在計算機科學界與計算機應用界的地位。
㈣ 數學與計算機演算法有什麼關系
數學是基礎學科,有豐富的數學基礎可以對理解編程中的邏輯有幫助。
編程對不同的人有不同的意義:
對於一般的程序員就是代碼的產出和可運行程序(數學在這裡面並不是特別重要,更重要的是對各種框架的理解、熟練掌握、設計模式等)。
對於演算法工程師來說,數學就很重要了(例如機器學習,密碼學,計算機圖形學等,當然這個對題主來說還太遙遠)。
題主說的函數實際上就是為了實現目的的一種封裝形式,而遞歸只是在函數中調用自身(當然需要終止條件)。
(4)計算機與演算法擴展閱讀:
計算機的三個主要特徵
1、運算速度快:計算機內部電路能高速准確地完成各種算術運算。當今計算機系統的計算速度已達到每秒數萬億次運算,微機也可達到每秒一億次運算,使大量復雜的科學計算問題得以解決。例如,計算衛星軌道、大型水壩和24小時的天氣可能需要數年甚至數十年,而在現代,用電腦幾分鍾就可以完成。
2、計算精度高:科學技術的發展,特別是尖端科學技術的發展,對計算精度要求很高。計算機控制的導彈之所以能夠准確命中預定目標,與計算機的精確計算是分不開的。一般的計算機可以有十幾位甚至幾十位數字(二進制)有效數字,其計算精度可以從千分之幾到百萬分之一,是任何計算工具都無法比擬的。
3、邏輯操作能力強:計算機不僅可以進行精確計算,還具有邏輯操作功能,可以對信息進行比較和判斷。計算機可參與操作數據、程序、中間結果和最終結果保存,並可根據判斷結果自動執行下一條指令,供用戶隨時調用。
㈤ 什麼叫演算法什麼叫計算機演算法
一、演算法是一系列解決問題的清晰指令,也就是說,能夠對一定規范的輸入,在有限時間內獲得所要求的輸出。演算法常常含有重復的步驟和一些比較或邏輯判斷。如果一個演算法有缺陷,或不適合於某個問題,執行這個演算法將不會解決這個問題。不同的演算法可能用不同的時間、空間或效率來完成同樣的任務。
二、計算機演算法是以一步接一步的方式來詳細描述計算機如何將輸入轉化為所要求的輸出的過程,或者說,演算法是對計算機上執行的計算過程的具體描述。
㈥ 計算機演算法是什麼
個人覺得演算法就是使用適合計算機計算的代碼,告訴計算機如何解決問題;
也就是一種給計算機設計的解決特定問題的方法
有時候一個計算機演算法並不適合人類使用去解決同一個問題
㈦ 計算機演算法與程序的關系
這個關系復雜,幾乎每個程序都與演算法有關系,如果是學習C語言,演算法很重要的
㈧ 計算機演算法是什麼
計算機演算法是以一步接一步的方式來詳細描述計算機如何將輸入轉化為所要求的輸出的過程,或者說,演算法是對計算機上執行的計算過程的具體描述。
㈨ 在計算機中,演算法是指什麼
計算機演算法是以一步接一步的方式來詳細描述計算機如何將輸入轉化為所要求的輸出的過程,或者說,演算法是對計算機上執行的計算過程的具體描述。
一個演算法必須具備以下性質:
(1)演算法首先必須是正確的,即對於任意的一組輸入,包括合理的輸入與不合理的輸入,總能得到預期的輸出。如果一個演算法只是對合理的輸入才能得到預期的輸出,而在異常情況下卻無法預料輸出的結果,那麼它就不是正確的。
(2)演算法必須是由一系列具體步驟組成的,並且每一步都能夠被計算機所理解和執行,而不是抽象和模糊的概念。
(3)每個步驟都有確定的執行順序,即上一步在哪裡;下一步是什麼,都必須明確,無二義性。
(4)無論演算法有多麼復雜,都必須在有限步之後結束並終止運行;即演算法的步驟必須是有限的。在任何情況下,演算法都不能陷入無限循環中。
一個問題的解決方案可以有多種表達方式;但只有滿足以上4個條件的解才能稱之為演算法。
(9)計算機與演算法擴展閱讀:
演算法可大致分為基本演算法、數據結構的演算法、數論與代數演算法、計算幾何的演算法、圖論的演算法、動態規劃以及數值分析、加密演算法、排序演算法、檢索演算法、隨機化演算法、並行演算法,厄米變形模型,隨機森林演算法。
演算法可以宏泛的分為三類:
一,有限的,確定性演算法 這類演算法在有限的一段時間內終止。他們可能要花很長時間來執行指定的任務,但仍將在一定的時間內終止。這類演算法得出的結果常取決於輸入值。
二,有限的,非確定演算法 這類演算法在有限的時間內終止。然而,對於一個(或一些)給定的數值,演算法的結果並不是唯一的或確定的。
三,無限的演算法 是那些由於沒有定義終止定義條件,或定義的條件無法由輸入的數據滿足而不終止運行的演算法。通常,無限演算法的產生是由於未能確定的定義終止條件。
㈩ 演算法與計算機程序一樣嗎
不一樣的。演算法主要是思路,方案,具體實現過程則是編程的環節。很多演算法書都是用的偽代碼寫的演算法,因為它只是向讀者介紹解決某一類問題的方法,具體的代碼則需要稍做修改之後才能運行。