『壹』 計算機演算法是什麼
問題一:什麼叫演算法?什麼叫計算機演算法? 演算法是一系列解決問題的清晰指令,也就是說,能夠對一定規范的輸入,在有限時間內獲得所要求的輸出。演算法常常含有重復的步驟和一些比較或邏輯判斷。如果一個演算法有缺陷,或不適合於某個問題,執行這個演算法將不會解決這個問題。�同的演算法可能用不同的時間、空間或效率來完成同樣的任務。一個演算法的優劣可以用空間復雜度與時間復雜度來衡量。
演算法的時間復雜度是指演算法需要消耗的時間資源。一般來說,計算機演算法是問題規模n 的函數f(n),演算法執行的時間的增長率與f(n) 的增長率正相關,稱作漸進時間復雜度(Asymptotic Time Complexity)。時間復雜度用「O(數量級)」來表示,稱為「階」。常見的時間復雜度有: O(1)常數階;O(log2n)對數階;O(n)線性階;O(n2)平方階。
演算法的空間復雜度是指演算法需要消耗的空間資源。其計算和表示方法與時間復雜度類似,一般都用復雜度的漸近性來表示。同時間復雜度相比,空間復雜度的分析要簡單得多。
[font class=Apple-style-span style=font-weight: bold; id=bks_etfhxykd]演算法 Algorithm [/font]
演算法是在有限步驟內求解某一問題所使用的一組定義明確的規則。通俗點說,就是計算機解題的過程。在這個過程中,無論是形成解題思路還是編寫程序,都是在實施某種演算法。前者是推理實現的演算法,後者是操作實現的演算法。
一個演算法應該具有以下五個重要的特徵:
1、有窮性: 一個演算法必須保證執行有限步之後結束;
2、確切性: 演算法的每一步驟必須有確切的定義;
3、輸入:一個演算法有0個或多個輸入,以刻畫運算對象的初始情況,所謂0個輸入是指演算法本身定除了初始條件;
4、輸出:一個演算法有一個或多個輸出,以反映對輸入數據加工後的結果。沒有輸出的演算法是毫無意義的;
5、可行性: 演算法原則上能夠精確地運行,而且人們用筆和紙做有限次運算後即可完成。
演算法的設計要求
問題二:計算機演算法是什麼? 在數學和計算機科學之中,演算法為一個計算的具體步驟,常用於計算、數據處理和自動推理。精確而言,演算法是一個表示為有限長列表的有效方法。
而程序演算法是指:
人們使用計算機,就是要利用計算機處理各種不同的問題,而要做到這一點,人們就必須事先對各類問題進行分析,確定解決問題的具體方法和步驟,再編制好一組讓計算機執行的指令即程序,交給計算機,讓計算機按人們指定的步驟有效地工作。這些具體的方法和步驟,其實就是解決一個問題的演算法。
例子:
如何用程序比較3個數字, 找出他們最大的那一個?
1) 輸入A、B、C。
2) A與B中大的一個放入M A X中。
3) 把C與M A X中大的一個放入M A X中。
4) 輸出M A X,M A X即為最大數。
這就是演算法.
int max = a > b ? a : b;max = max > c ? max : c;最終max 中就是a,b,c中最大的值.
問題三:計算機演算法是什麼 個人覺得演算法就是使用適合計算機計算的代碼,告訴計算機如何解決問題;
也就是一種給計算機設計的解決特定問題的方法有時候一個計算機演算法並不適合人類使用去解決同一個問題
問題四:計算機演算法要素是什麼 演算法是指完成一個任務准確而完整的描述.也就是說給定初始狀態或輸入數據,經過計算機程序的有限次運算,能夠得出所要求或期望的終止狀態或輸出數據.
問題五:計算機演算法指的是什麼 計算機演算法是以一步接一步的方式來詳細描述計算機如何將輸入轉化為所要求的輸出的過程,或者說,演算法是對計算機上執行的計算過程的具體描述。
�憂樂美 團隊---半緣修道半緣女�為您解答
=====滿意請採納為滿意答案吧====
問題六:計算機的演算法具有哪些特性? 一個演算法必須具備以下性質: (1)演算法首先必須是正確的,即對於任意的一組輸入,包括合理的輸入與不合理的輸入,總能得到預期的輸出。如果一個演算法只是對合理的輸入才能得到預期的輸出,而在異常情況下卻無法預料輸出的結果,那麼它就不是正確的。 (2)演算法必須是由一系列具體步驟組成的,並且每一步都能夠被計算機所理解和執行,而不是抽象和模糊的概念。 (3)每個步驟都有確定的執行順序,即上一步在哪裡,下一步是什麼,都必須明確,無二義性。 (4)無論演算法有多麼復雜,都必須在有限步之後結束並終止運行,即演算法的步驟必須是有限的。在任何情況下,演算法都不能陷入無限循環中。 一個問題的解決罰案可以有多種表達方式,但只有滿足以上4個條件的解才能稱之為演算法。
綜上所述,我選A、B、E,個人感覺C也選,但我不確定,希望不要誤導你。
最好根據上面的解釋或是演算法書自己看一下。
問題七:在計算機演算法中,它們有什麼區別 演算法就是一種解決問題的方法,我的理解就是,面對一個問題,我們讓計算機來解決這個問題,這種方法就是演算法.
問題八:研究計算機演算法對於編程有什麼作用? 讓我來告訴你,演算法通俗意義上來講――就是解決一個問題的方法。據此而論,編寫程序解決的任何一個問題都可以叫做演算法。狹義上來講研究演算法就是在使用相同的計算資源的並解決同一個問題的情況下怎麼樣可以更加的節約資源,也就是說使計算速度更快。
拿一個例子來講就是排序,我們現在了解到的演算法有:冒泡,快速,插入,堆排序等等很多,在不同的輸入數據規模的情況下採用不同的演算法,因為可以節約計算資源。
問題九:計算機編程的演算法是什麼意思 平時說的演算法就是數學上的計算方法,計算機中的演算法是:解決問題的方法,不一定用數學方法(但大多都是數學方法),只要能通過計算機語言表達出來,達到最終目的的步驟都叫演算法
『貳』 計算機演算法指的是什麼
計算機演算法指的是解決某一問題的有限運算序列,演算法的定義是用來解決某一特定類型問題的有限運算序列;演算法中的指令描述的是一個計算,當其運行時能從一個初始狀態和初始輸入開始,經過一系列有限而清晰定義的狀態,最終產生輸出並停止於一個終態。
演算法是指解題方案的准確而完整的描述,是一系列解決問題的清晰指令,演算法代表著用系統的方法描述解決問題的策略機制。也就是說,能夠對一定規范的輸入,在有限時間內獲得所要求的輸出。
如果一個演算法有缺陷,或不適合於某個問題,執行這個演算法將不會解決這個問題。不同的演算法可能用不同的時間、空間或效率來完成同樣的任務。一個演算法的優劣可以用空間復雜度與時間復雜度來衡量。
演算法中的指令描述的是一個計算,當其運行時能從一個初始狀態和(可能為空的)初始輸入開始,經過一系列有限而清晰定義的狀態,最終產生輸出並停止於一個終態。一個狀態到另一個狀態的轉移不一定是確定的。隨機化演算法在內的一些演算法,包含了一些隨機輸入。
『叄』 計算機演算法的三種基本結構
演算法有順序結構、條件分支結構、循環結構三種基本邏輯結構。
1、順序結構
序貫結構是最簡單的演算法結構,在語句之間、框之間自上而下進行。它由依次執行的幾個處理步驟組成。
它是任何演算法都不能缺少的基本演算法結構。方框圖中的順序結構是將程序框從上到下與流水線連接,按順序執行演算法步驟。
2、條件分支結構
條件結構是指通過判斷演算法中的條件,根據條件是否為真來選擇不同流向的演算法結構。
如果條件P為真,則選擇執行框A或框B。無論P條件是否為真,只能執行A盒或B盒中的一個。不可能同時執行盒子A和B,盒子A和B不執行也是不可能的。一個判斷結構可以有多個判斷框。
3、循環結構
在某些演算法中,經常會出現某一處理步驟按照某一條件從某一地點重復執行的情況。這就是循環結構。重復執行的處理步驟是循環體,顯然,循環結構必須包含條件結構。循環結構又稱重復結構,可分為兩類:
一種是當循環結構,功能是P時形成時給定的條件下,執行一個盒子,一個盒子在執行後,確定條件P,如果仍然設置和執行一個盒子,等等來執行一個盒子,直到一個條件P並不不再執行一個盒子,這個時候離開循環結構。
另一種類型是直到型循環結構,作用是先執行,然後判斷給定條件P是否為真。如果P仍然不為真,將繼續執行盒子A,直到給定條件P為真一段時間。
(3)計算機演算法處理擴展閱讀:
共同特徵
1、只有一個入口和出口
2、結構的每個部分都有執行的機會,即對於每個盒子,應該有一個從入口到出口的路徑。如圖A所示,從入口到出口沒有經過它的路徑,這是不符合要求的演算法結構。
3、結構中不存在死循環,即沒有結束循環。
『肆』 計算機演算法指的是什麼
計算機演算法是以一步接一步的方式來詳細描述計算機如何將輸入轉化為所要求的輸出的過程,或者說,演算法是對計算機上執行的計算過程的具體描述。
無論演算法有多麼復雜,都必須在有限步之後結束並終止運行;即演算法的步驟必須是有限的。在任何情況下,演算法都不能陷入無限循環中。演算法必須是由一系列具體步驟組成的,並且每一步都能夠被計算機所理解和執行,而不是抽象和模糊的概念。
演算法首先必須是正確的,即對於任意的一組輸入,包括合理的輸入與不合理的輸入,總能得到預期的輸出。如果一個演算法只是對合理的輸入才能得到預期的輸出,而在異常情況下卻無法預料輸出的結果,那麼它就不是正確的。
(4)計算機演算法處理擴展閱讀
特點
1、有窮性。一個演算法應包含有限的操作步驟,而不能是無限的。事實上「有窮性」往往指「在合理的范圍之內」。如果讓計算機執行一個歷時1000年才結束的演算法,這雖然是有窮的,但超過了合理的限度,人們不把他視為有效演算法。
2、確定性。演算法中的每一個步驟都應當是確定的,而不應當是含糊的、模稜兩可的。演算法中的每一個步驟應當不致被解釋成不同的含義,而應是十分明確的。也就是說,演算法的含義應當是唯一的,而不應當產生「歧義性」。
3、有零個或多個輸入。所謂輸入是指在執行演算法是需要從外界取得必要的信息。
4、有一個或多個輸出。演算法的目的是為了求解,沒有輸出的演算法是沒有意義的。
5、有效性。 演算法中的每一個 步驟都應當能有效的執行。並得到確定的結果。
『伍』 計算機演算法指的是什麼
演算法,從字面意義上解釋,就是用於計算的方法,通過該這種方法可以達到預期的計算結果。目前,被廣泛認可的演算法專業定義是:演算法是模型分析的一組可行的,確定的,有窮的規則。
通俗的說,演算法也可以理解為一個解題步驟,有一些基本運算和規定的順序構成。但是從計算機程序設計的角度看,演算法由一系列求解問題的指令構成,能根據規范的輸入,在有限的時間內獲得有效的輸出結果。演算法代表了用系統的方法來描述解決問題的一種策略機制。
完成同一件事的不同的演算法完成的時間和佔用的資源可能並不相同,這就牽扯到效率的問題。演算法的基本任務是針對一個具體的問題,找到一個高效的處理方法,從而完成任務。而這就是我們的責任了。
演算法的五個特徵:
一個典型的演算法一般都可以抽象出5個特徵:
有窮性:演算法的指令或者步驟的執行次數和時間都是有限的。
確切性:演算法的指令或步驟都有明確的定義。
輸入:有相應的輸入條件來刻畫運算對象的初始情況。
輸出:一個算應有明確的結果輸出。
可行性:演算法的執行步驟必須是可行的。
『陸』 計算機中,演算法指的是解決某一問題的有限運算序列,它必須具備什麼
計算機中,演算法指的是解決某一問題的有限運算序列,它必須具備確定性、有效性、有窮性、0個或者多個輸入、1個或者多個輸出。
演算法中的指令描述的是一個計算,當其運行時能從一個初始狀態和(可能為空的)初始輸入開始,經過一系列有限而清晰定義的狀態,最終產生輸出並停止於一個終態。一個狀態到另一個狀態的轉移不一定是確定的。隨機化演算法在內的一些演算法,包含了一些隨機輸入。
(6)計算機演算法處理擴展閱讀:
演算法的分類
演算法可大致分為基本演算法、數據結構的演算法、數論與代數演算法、計算幾何的演算法、圖論的演算法、動態規劃以及數值分析、加密演算法、排序演算法、檢索演算法、隨機化演算法、並行演算法,厄米變形模型,隨機森林演算法。
1、有限的,確定性演算法 這類演算法在有限的一段時間內終止。他們可能要花很長時間來執行指定的任務,但仍將在一定的時間內終止。這類演算法得出的結果常取決於輸入值。
2、有限的,非確定演算法 這類演算法在有限的時間內終止。然而,對於一個(或一些)給定的數值,演算法的結果並不是唯一的或確定的。
3、無限的演算法,是那些由於沒有定義終止定義條件,或定義的條件無法由輸入的數據滿足而不終止運行的演算法。通常,無限演算法的產生是由於未能確定的定義終止條件。
『柒』 在計算機中演算法有什麼作用
在計算機中演算法的作用:計算機中使用的其他技術離不開演算法的支撐,而且只有把演算法和其他技術有效的結合起來,才能使計算機解決問題的能力最大化,最後達到1+1>2的效果。
計算機演算法是以一步接一步的方式來詳細描述計算機如何將輸入轉化為所要求的輸出的過程,或者說,演算法是對計算機上執行的計算過程的具體描述。
計算機不能做到無限快,存儲也不是免費的,為了提高解決問題的效率,必須研究演算法,同時,解決同一個問題的各種不同演算法的效率常常相差非常大,這種效率上的差距影響往往比硬體和軟體方面的差距還要大。
(7)計算機演算法處理擴展閱讀:
計算機中演算法特點:
1、有窮性。一個演算法應包含有限的操作步驟,而不能是無限的。事實上「有窮性」往往指「在合理的范圍之內」。如果讓計算機執行一個歷時1000年才結束的演算法,這雖然是有窮的,但超過了合理的限度,人們不把他視為有效演算法。
2、確定性。演算法中的每一個步驟都應當是確定的,而不應當是含糊的、模稜兩可的。演算法中的每一個步驟應當不致被解釋成不同的含義,而應是十分明確的。也就是說,演算法的含義應當是唯一的,而不應當產生「歧義性」。
3、有零個或多個輸入、所謂輸入是指在執行演算法是需要從外界取得必要的信息。
4、有一個或多個輸出。演算法的目的是為了求解,沒有輸出的演算法是沒有意義的。
5、有效性。 演算法中的每一個 步驟都應當能有效的執行。並得到確定的結果。
『捌』 計算機演算法可以處理邏輯問題嗎
基本上可以處理所有的邏輯問題,
『玖』 計算機常用演算法有哪些
貪心演算法,蟻群演算法,遺傳演算法,進化演算法,基於文化的遺傳演算法,禁忌演算法,蒙特卡洛演算法,混沌隨機演算法,序貫數論演算法,粒子群演算法,模擬退火演算法。
模擬退火+遺傳演算法混合編程例子:
http://..com/question/43266691.html
自適應序貫數論演算法例子:
http://..com/question/60173220.html
『拾』 計算機的演算法具有哪些特性
計算機的演算法具有可行性,有窮性、輸入輸出、確定性。
計算機演算法特點
1.有窮性。一個演算法應包含有限的操作步驟,而不能是無限的。事實上「有窮性」往往指「在合理的范圍之內」。如果讓計算機執行一個歷時1000年才結束的演算法,這雖然是有窮的,但超過了合理的限度,人們不把他視為有效演算法。
2. 確定性。演算法中的每一個步驟都應當是確定的,而不應當是含糊的、模稜兩可的。演算法中的每一個步驟應當不致被解釋成不同的含義,而應是十分明確的。也就是說,演算法的含義應當是唯一的,而不應當產生「歧義性」。
3. 有零個或多個輸入、所謂輸入是指在執行演算法是需要從外界取得必要的信息。
4. 有一個或多個輸出。演算法的目的是為了求解,沒有輸出的演算法是沒有意義的。
5.有效性。 演算法中的每一個 步驟都應當能有效的執行。並得到確定的結果。
重要演算法
A*搜尋演算法
俗稱A星演算法。這是一種在圖形平面上,有多個節點的路徑,求出最低通過成本的演算法。常用於游戲中的NPC的移動計算,或線上游戲的BOT的移動計算上。該演算法像Dijkstra演算法一樣,可以找到一條最短路徑;也像BFS一樣,進行啟發式的搜索。
Beam Search
束搜索(beam search)方法是解決優化問題的一種啟發式方法,它是在分枝定界方法基礎上發展起來的,它使用啟發式方法估計k個最好的路徑,僅從這k個路徑出發向下搜索,即每一層只有滿意的結點會被保留,其它的結點則被永久拋棄,從而比分枝定界法能大大節省運行時間。束搜索於20 世紀70年代中期首先被應用於人工智慧領域,1976 年Lowerre在其稱為HARPY的語音識別系統中第一次使用了束搜索方法。他的目標是並行地搜索幾個潛在的最優決策路徑以減少回溯,並快速地獲得一個解。
二分取中查找演算法
一種在有序數組中查找某一特定元素的搜索演算法。搜索過程從數組的中間元素開始,如果中間元素正好是要查找的元素,則搜索過程結束;如果某一特定元素大於或者小於中間元素,則在數組大於或小於中間元素的那一半中查找,而且跟開始一樣從中間元素開始比較。這種搜索演算法每一次比較都使搜索范圍縮小一半。
Branch and bound
分支定界(branch and bound)演算法是一種在問題的解空間樹上搜索問題的解的方法。但與回溯演算法不同,分支定界演算法採用廣度優先或最小耗費優先的方法搜索解空間樹,並且,在分支定界演算法中,每一個活結點只有一次機會成為擴展結點。
數據壓縮
數據壓縮是通過減少計算機中所存儲數據或者通信傳播中數據的冗餘度,達到增大數據密度,最終使數據的存儲空間減少的技術。數據壓縮在文件存儲和分布式系統領域有著十分廣泛的應用。數據壓縮也代表著尺寸媒介容量的增大和網路帶寬的擴展。
Diffie–Hellman密鑰協商
Diffie–Hellman key exchange,簡稱「D–H」,是一種安全協議。它可以讓雙方在完全沒有對方任何預先信息的條件下通過不安全信道建立起一個密鑰。這個密鑰可以在後續的通訊中作為對稱密鑰來加密通訊內容。
Dijkstra』s 演算法
迪科斯徹演算法(Dijkstra)是由荷蘭計算機科學家艾茲格·迪科斯徹(Edsger Wybe Dijkstra)發明的。演算法解決的是有向圖中單個源點到其他頂點的最短路徑問題。舉例來說,如果圖中的頂點表示城市,而邊上的權重表示著城市間開車行經的距離,迪科斯徹演算法可以用來找到兩個城市之間的最短路徑。
動態規劃
動態規劃是一種在數學和計算機科學中使用的,用於求解包含重疊子問題的最優化問題的方法。其基本思想是,將原問題分解為相似的子問題,在求解的過程中通過子問題的解求出原問題的解。動態規劃的思想是多種演算法的基礎,被廣泛應用於計算機科學和工程領域。比較著名的應用實例有:求解最短路徑問題,背包問題,項目管理,網路流優化等。這里也有一篇文章說得比較詳細。
歐幾里得演算法
在數學中,輾轉相除法,又稱歐幾里得演算法,是求最大公約數的演算法。輾轉相除法首次出現於歐幾里得的《幾何原本》(第VII卷,命題i和ii)中,而在中國則可以追溯至東漢出現的《九章算術》。
最大期望(EM)演算法
在統計計算中,最大期望(EM)演算法是在概率(probabilistic)模型中尋找參數最大似然估計的演算法,其中概率模型依賴於無法觀測的隱藏變數(Latent Variable)。最大期望經常用在機器學習和計算機視覺的數據聚類(Data Clustering)領域。最大期望演算法經過兩個步驟交替進行計算,第一步是計算期望(E),利用對隱藏變數的現有估計值,計算其最大似然估計值;第二步是最大化(M),最大化在 E 步上求得的最大似然值來計算參數的值。M 步上找到的參數估計值被用於下一個 E 步計算中,這個過程不斷交替進行。
快速傅里葉變換(FFT)
快速傅里葉變換(Fast Fourier Transform,FFT),是離散傅里葉變換的快速演算法,也可用於計算離散傅里葉變換的逆變換。快速傅里葉變換有廣泛的應用,如數字信號處理、計算大整數乘法、求解偏微分方程等等。
哈希函數
HashFunction是一種從任何一種數據中創建小的數字「指紋」的方法。該函數將數據打亂混合,重新創建一個叫做散列值的指紋。散列值通常用來代表一個短的隨機字母和數字組成的字元串。好的散列函數在輸入域中很少出現散列沖突。在散列表和數據處理中,不抑制沖突來區別數據,會使得資料庫記錄更難找到。
堆排序
Heapsort是指利用堆積樹(堆)這種數據結構所設計的一種排序演算法。堆積樹是一個近似完全二叉樹的結構,並同時滿足堆積屬性:即子結點的鍵值或索引總是小於(或者大於)它的父結點。
歸並排序
Merge sort是建立在歸並操作上的一種有效的排序演算法。該演算法是採用分治法(Divide and Conquer)的一個非常典型的應用。
RANSAC 演算法
RANSAC 是」RANdom SAmpleConsensus」的縮寫。該演算法是用於從一組觀測數據中估計數學模型參數的迭代方法,由Fischler and Bolles在1981提出,它是一種非確定性演算法,因為它只能以一定的概率得到合理的結果,隨著迭代次數的增加,這種概率是增加的。該演算法的基本假設是觀測數據集中存在」inliers」(那些對模型參數估計起到支持作用的點)和」outliers」(不符合模型的點),並且這組觀測數據受到雜訊影響。RANSAC 假設給定一組」inliers」數據就能夠得到最優的符合這組點的模型。
RSA加密演演算法
這是一個公鑰加密演算法,也是世界上第一個適合用來做簽名的演算法。今天的RSA已經專利失效,其被廣泛地用於電子商務加密,大家都相信,只要密鑰足夠長,這個演算法就會是安全的。
並查集Union-find
並查集是一種樹型的數據結構,用於處理一些不相交集合(Disjoint Sets)的合並及查詢問題。常常在使用中以森林來表示。
Viterbi algorithm
尋找最可能的隱藏狀態序列(Finding most probable sequence of hidden states)。