演算法分析裡面的數學看不懂?

時間 2021-05-30 06:49:10

1樓:

個人感覺,很多任務科生看到公式和證明首先就膽怯了,而膽怯是你看懂公式的最大障礙。數學功底差,那就先把每個符號表示什麼先弄懂,然後再去查相關的書,一定要有耐心。如果數學基礎比較紮實,且時間比較多,我推薦把高等代數,數學分析兩門課學習一下(如果沒有毅力,那可以放棄這個建議),這兩門基本是大部分數學的基礎。

演算法我只瀏覽過演算法導論,裡面涉及到的數學知識面比較廣但都不是特別高深,大部分都是資料結構,線性代數,初等數論,離散數學,圖論等的基本知識。如果你現在做的東西比較淺且覆面廣,個人感覺邊查邊學是做好的選擇。如果做的東西比較深入了,那就得細化好好研究下涉及的數學知識了。

作為數學系的人,也不可能看見什麼數學問題都懂,都是遇到了就邊查邊學。

2樓:白如冰

看不懂就不要硬看了。

演算法分析的側重點就是用數學手段分析證明演算法的正確性、複雜度,而不是演算法本身的直觀理解與應用,一般而言不是第一門關於資料結構與演算法的課程。一些其它理工科專業的學生直接看演算法分析好像沒多大問題因為一些需要先修的數學基礎課是共通的。如果你本身只是追求直觀理解和應用,沒有更進一步深入學習的想法,並且數學基礎不那麼好的話就應該看「資料結構」「演算法」這樣的書,而不是名字裡帶「演算法分析」的。

3樓:竹目草

一般演算法設計的時空複雜度分析應該並不困難。對於高階演算法的分析,那可能涉及複雜數學知識和巧妙的trick。

如果希望系統學習演算法設計分析及相關數學基礎,那麼《具體數學》就是一本這樣的書籍。

Concrete Mathematics: A Foundation for Computer Science (2nd Edition)

中譯版: 具體數學

4樓:

第乙個問題:

先學好組合數學,然後把一些典型的求和公式,求和不等式看懂。

演算法時間空間複雜度一般都不要求很嚴格計算出來,畢竟受限於規模和輸入的資料,所以才會有最好和最差之分。

一些特殊的演算法,比如數論,傅利葉快速變換就得需要專業得學術知識,而且乙個問題背後隱藏的數學深坑很多。

就普通演算法來說,涉及到的數學式子一般是時空分析,那麼先看好組合數學的基本內容就好了。然後涉點離散數學的知識:基礎數論,集合論等。

基本能把《演算法導論》的大部分常見演算法裡面出現的數學式子看懂。

第二問題:

當然數學分析很重要,數學分析不僅僅能幫助你對問題的理解,而且演算法的世界裡面有很多觸類旁通的玩意,比如二分的思想在很多資料結構、演算法裡面都有很多體現。

我的建議是,對於大部分常規演算法的數學推導還是要明白的,這樣才能做到有底,用起來也理直氣壯(算法學來就是用來用的)。但是也不是那麼的嚴格,一定做到什麼立馬完整的能推出乙個所以然來,但是大概的過程還是要知道的。

理解原理和理解其正確性還是有很大差距的,畢竟工程中能用到原原本本的現成的演算法的情況不多,你數學原理都不太理解,將來怎麼保證自己在工程上提出的演算法的正確性呢?

PS:如果你勵志做」電腦科學理論學家「那麼還是先從數學坑走起吧。

數學分析到底怎麼學,好抽象看不懂怎麼辦,我高中數學學得挺好,但上了大學剛開始上課就聽不懂了,崩潰焦慮?

yotsunoha 課前預習,我現在也在正在學習數學分析,也有同感,但課還是聽得懂的,就是自己不會熟練運用定理,和證明定理,焦慮崩潰沒用呀,關鍵是耐下心來多琢磨多看書,多看幾遍就會有不一樣的感受,我們老師說課前要至少預習2到3個小時。一起加油吧 從高中學習數學的思維方式轉變到大學的思維方式還是需要一...

看軟體架構方面的書,看不懂,怎麼破?

Alex Zhao 這個問題一般最常見的原因是你沒有理解書裡講述的內容所想要解決的問題。每一項技術都有自己特定的目標,如果你不理解目標,即便你把這個技術相關的資料全部背下來,你也很難說自己掌握了這項技術。具體以常見的應用程式級的framework為例 如果你沒有進行過大中型軟體的開發,你就很難對大量...

《刺客聶隱娘》幾處看不懂,可否幫忙分析?

像聶隱娘這種電影,不是要你看懂的,是要你感受的。感受二字出口之後怎麼覺得這麼裝x。但天地良心,我真的是這個意見。導演費勁巴拉的等風來,拍乙個鏡頭。不是說這個行為 這個鏡頭 這個故事情節,怎麼嚴絲合縫,怎麼跌宕起伏。他是為了盡可能的還原當時的環境給你,然後讓你穿越到那個環境裡,產生屬於你自己的感受。每...