當前位置:首頁 » 操作系統 » 演算法實際應用

演算法實際應用

發布時間: 2025-02-08 03:53:07

『壹』 計算機演算法在實際生活中的應用

在這一周的《吳軍的谷歌方法論》中,老師講了地址(addressing)的重要性,並在此基礎上介紹了地址的查找,數據的訪問。對於地址的查找,在數據量較小時,可以採用順序查找法和字典查找法;當數據量達到一定程度後,則需要為數據建立索引。而對於已經建立的索引進行查找,老師又詳細介紹了具體方法的演進過程,引出隨機性在索引查找中的應用。

通過上一周的學習,有如下幾點收獲:

1.理清問題,確定演算法,選擇語言

在這周的文章中讀到,以前的人把計算當作目的,圖靈是把計算當作手段,實現一些功能才是他的目的,回想起自己做研究生課題時遇到的一個問題。當時自己做的是機油濾芯過濾阻力和過濾精度的模擬計算,開始階段採用二維模型來模擬圓筒狀的濾芯。實際生產的濾芯是用木屑做的,填充率為31.8%,自己模擬計算也希望達到這個數值,但是初步的計算達不到這個數值,就向博士畢業的堂姐請教了這個問題:

堂姐的回復如下:

當時並沒有非常理解她說的話,現在回過頭來看,能更加明白她的意思了。對於一個具體的問題,可以採用的演算法其實是非常多的,對於每一種演算法又可以選擇很多種實現的語言。但是我們解決問題的時候,一定要從問題這個根本出發,對於問題本身有足夠深入的思考。在此基礎上,明白解決這個問題採用怎樣的演算法最簡潔高效,這是關鍵。至於選擇那種語言或者工具,會對演算法的實現效率產生一定影響,但不是最核心的。

2.從多個維度建立索引

對於演算法的介紹中,老師強調了索引的重要性。關於建立索引,想到的兩個應用的例子,一個是微信好友的標簽,一個是印象筆記的標簽。

對於我們在工作場合或者意外狀況下認識的朋友,也許後期的聯系會很少,那麼建立細致的備注信息就很有必要。通過對聊天記錄的梳理,在標簽中註明行業,公司,家鄉,甚至愛好,並且備注一些印象深的細節。這樣不僅可以通過標簽很快找到對應的人,而且在以後再次約見的時候,能通過這些標簽信息,談一些對方熟悉的話題,迅速拉近彼此的距離,對於我們的社交會有很大的幫助。

另外一個就是在印象筆記中建立新筆記時,可以建立盡量詳細的標簽。這在當時可能費事一點,但是後面隨著筆記數量的增多,在海量筆記中通過標簽來進行篩選,將是一件非常提升效率的事情。說到印象筆記,就像多說兩句,因為真的很好用。建立標簽就點擊F3就可以開始建立新標簽。

3.問題規模的增大會導致性質的變化

讀到這句話時,想到之前脫不花和羅振宇兩位老師在周二例會時講得到的發展。當時得到總共的人數是157個人,剛剛超過鄧巴數(人類智力允許人類擁有穩定社交網路的人數,為148)。

在鄧巴數以內,公司裡面的人可以彼此認識並且維持穩定的關系,不需要太明確的部門和上下級關系。但是兩位老師講到,隨著公司里的人數超過鄧巴數,那麼部門化和層級化是不可避免的趨勢,因為這樣可以提高效率。但部門和層級的建立,會導致利益變形,之前大家是向市場要收益,更關注如何把自己的工作做好;之後是向上級要收益,更容易出現溜須拍馬的現象。

不過正如老師所說,本著遇到問題解決問題的態度,即便問題轉化了,只要大家發揮主動性,認真去面對問題,總會有解決方法。而且Google,蘋果這樣的公司樹立了很好的榜樣,現在已經非常大了,依然保持很好的運作和增長。

而作為個人,我們應該更多關注自己如何在企業不斷擴大的過程中,保持自己本身的不斷成長,為公司解決新的更復雜的問題,讓自己一直擁有競爭力。這也是《領導梯隊》中想要告訴我們的,在領導梯隊的上升過程中,面對的不是更多同類的問題,而是全新的問題。我們要讓自己學會轉化思維模式,這樣在舊問題已經轉變成新問題時,可以更好去應對。

『貳』 演算法在實際生活中的應用

求解問題類的、機械的、統一的方法,它由有限多個步驟組成,對於問題類中的每個給定的具體問題,機械地執行這些步驟就可以得到問題的解答。演算法的這種特性,使得計算不僅可以由人,而且可以由計算機來完成。用計算機解決問題的過程可以分成三個階段:分析問題、設計演算法和實現演算法。
中國古代的籌算口決與珠算口決及其執行規則就是演算法的雛形,這里,所解決的問題類是算術運算。古希臘數學家歐幾里得在公元前3世紀就提出了一個演算法,來尋求兩個正整數的最大公約數,這就是有名的歐幾里得演算法,亦稱輾轉相除法。中國早已有「算術「、「演算法」等詞彙,但是它們的含義是指當時的全部數學知識和計算技能,與現代演算法的含義不盡相同。英文algorithm(演算法)一詞也經歷了一個演變過程,最初的拼法為algorism或algoritmi,原意為用阿拉伯數字進行計算的過程。這個詞源於公元 9世紀波斯數字家阿爾·花拉子米的名字的最後一部分。
在古代,計算通常是指數值計算。現代計算已經遠遠地突破了數值計算的范圍,包括大量的非數值計算,例如檢索、表格處理、判斷、決策、形式邏輯演繹等。
在20世紀以前,人們普遍地認為,所有的問題類都是有演算法的。20世紀初,數字家們發現有的問題類是不存在演算法的,遂開始進行能行性研究。在這一研究中,現代演算法的概念逐步明確起來。30年代,數字家們提出了遞歸函數、圖靈機等計算模型,並提出了丘奇-圖靈論題(見可計算性理論),這才有可能把演算法概念形式化。按照丘奇-圖靈論題,任意一個演算法都可以用一個圖靈機來實現,反之,任意一個圖靈機都表示一個演算法。
按照上述理解,演算法是由有限多個步驟組成的,它有下述兩個基本特徵:每個步驟都明確地規定要執行何種操作;每個步驟都可以被人或機器在有限的時間內完成。人們對於演算法還有另一種不同的理解,它要求演算法除了上述兩個基本特徵外,還要具有第三個基本特徵:雖然有些步驟可能被反復執行多次,但是在執行有限多次之後,就一定能夠得到問題的解答。也就是說,一個處處停機(即對任意輸入都停機)的圖靈機才表示一個演算法,而每個演算法都可以被一個處處停機的圖靈機來實現
演算法分類
演算法可大致分為基本演算法、數據結構的演算法、數論與代數演算法、計算幾何的演算法、圖論的演算法、動態規劃以及數值分析、加密演算法、排序演算法、檢索演算法、隨機化演算法、並行演算法。
演算法可以宏泛的分為三類:
有限的,確定性演算法 這類演算法在有限的一段時間內終止。他們可能要花很長時間來執行指定的任務,但仍將在一定的時間內終止。這類演算法得出的結果常取決於輸入值。
有限的,非確定演算法 這類演算法在有限的時間內終止。然而,對於一個(或一些)給定的數值,演算法的結果並不是唯一的或確定的。
無限的演算法 是那些由於沒有定義終止定義條件,或定義的條件無法由輸入的數據滿足而不終止運行的演算法。通常,無限演算法的產生是由於未能確定的定義終止條件。演算法特徵一個演算法應該具有以下五個方面的重要特徵:1、輸入。一個演算法有零個或多個輸入,以刻畫運算對象的初始情況。例如,在歐幾里得演算法中,有兩個輸入,即m和n。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、用自然語言描述演算法前面關於歐幾里得演算法以及演算法實例的描述,使用的都是自然語言。自然語言是人們日常所用的語言,如漢語、英語、德語等。使用這些語言不用專門訓練,所描述的演算法也通俗易懂。2、用流程圖描述演算法在數學課程里,我們學習了用程序框圖來描述演算法。在程序框圖中流程圖是描述演算法的常用工具由一些圖形符號來表示演算法。3、用偽代碼描述演算法偽代碼是用介於自然語言和計算機語言之間的文字和符號來描述演算法的工具。它不用圖形符號,因此,書寫方便、格式緊湊,易於理解,便於向計算機程序設計語言過度。

熱點內容
c語言的列印函數 發布:2025-02-08 06:43:54 瀏覽:786
海康威視區域網訪問 發布:2025-02-08 06:41:16 瀏覽:964
html5移動端源碼下載 發布:2025-02-08 06:20:45 瀏覽:149
外網訪問黑群暉 發布:2025-02-08 05:45:59 瀏覽:562
中央存儲伺服器公司地址 發布:2025-02-08 05:38:48 瀏覽:822
伺服器如何查詢表空間的文件路徑 發布:2025-02-08 05:38:00 瀏覽:163
宏基4741g哪個配置好 發布:2025-02-08 05:37:56 瀏覽:811
混合料運輸車的配置是如何計算的 發布:2025-02-08 05:31:35 瀏覽:294
android紅包插件 發布:2025-02-08 05:31:34 瀏覽:366
ea伺服器怎麼連接 發布:2025-02-08 05:16:45 瀏覽:464