㈠ 學習演算法需要什麼樣的數學基礎
具體看做哪方面的演算法,普通碼農有高數基礎就行了,大數據需要概率論和數理統計方面的知識,機器學習需要線性代數、數值分析、最優化、概率論、隨機過程等知識,密碼學涉及到線性代數、抽象代數、代數幾何等,網上這些課程都有。
㈡ 請問有沒有與演算法有關的數學書籍推薦
你說的演算法是編程演算法還是機器學習之類的演算法呢,前者的話通常不需要什麼數學書籍,後者要看的可多了,線性代數、矩陣分析、概率論和數理統計非常重要、離散數學、最優化方法、隨機過程等等
㈢ 數學與計算機演算法有什麼關系
數學是基礎學科,有豐富的數學基礎可以對理解編程中的邏輯有幫助。
編程對不同的人有不同的意義:
對於一般的程序員就是代碼的產出和可運行程序(數學在這裡面並不是特別重要,更重要的是對各種框架的理解、熟練掌握、設計模式等)。
對於演算法工程師來說,數學就很重要了(例如機器學習,密碼學,計算機圖形學等,當然這個對題主來說還太遙遠)。
題主說的函數實際上就是為了實現目的的一種封裝形式,而遞歸只是在函數中調用自身(當然需要終止條件)。
(3)數學與演算法學習文檔擴展閱讀:
計算機的三個主要特徵
1、運算速度快:計算機內部電路能高速准確地完成各種算術運算。當今計算機系統的計算速度已達到每秒數萬億次運算,微機也可達到每秒一億次運算,使大量復雜的科學計算問題得以解決。例如,計算衛星軌道、大型水壩和24小時的天氣可能需要數年甚至數十年,而在現代,用電腦幾分鍾就可以完成。
2、計算精度高:科學技術的發展,特別是尖端科學技術的發展,對計算精度要求很高。計算機控制的導彈之所以能夠准確命中預定目標,與計算機的精確計算是分不開的。一般的計算機可以有十幾位甚至幾十位數字(二進制)有效數字,其計算精度可以從千分之幾到百萬分之一,是任何計算工具都無法比擬的。
3、邏輯操作能力強:計算機不僅可以進行精確計算,還具有邏輯操作功能,可以對信息進行比較和判斷。計算機可參與操作數據、程序、中間結果和最終結果保存,並可根據判斷結果自動執行下一條指令,供用戶隨時調用。
㈣ 學習高數、離散數學、數據結構和演算法的教材與書籍
我是計算機專業大三的學生
大學裡面
高數比較流行的是同濟的高數教材,綠色的皮,上下2冊,現在應該是第6版吧
數據結構最流行的是嚴蔚敏寫的,好像是清華大學出版社的吧
離散數學比較好的是左孝陵寫的,上海科學技術文獻出版社吧
演算法比較通用的是王曉東的計算機演算法設計與分析,現在應該有第3版了吧。。(我用的是第2版),電子工業出版社的
學數據結構前你要會一門語言,C,C++,java什麼都行。嚴蔚敏的書是基於C的,也有很多基於JAVA語言的數據結構也很不錯
在學離散數學,數據結構之前你還 應該學學線性代數這門課
㈤ 學軟體開發需要學習什麼知識數據結構和演算法與數學有關系嗎
數學成績不好也能學好編程。編程要的解決問題的方法和編程語言的熟練使用,你要先學C語言,是編程入門的 ,我是學這個專業的,我指導你學,我資料里有交流方法
㈥ 學習「數據結構與演算法」需要哪些數學基礎
你好,數據結構不需要數學基礎,要的是基本的理解能力和代碼能力,還有就是多思考,數據結構很簡單的。
㈦ 與演算法有關的數學課程
1. 計算機程序設計的藝術,目前出了三卷,被稱為演算法的葵花寶典,作者是高德納--最年輕的圖靈獎(計算機領域的諾貝爾獎)獲得者。據說他就是因為這本書獲獎。
2. 演算法導論,演算法裡面的獨孤九劍,MIT教授寫的,一般被稱為CLRS書,常作為大學教材用。常見演算法都有講
3. 演算法I-V,五卷兩本書,高德納的學生(現在也是斯坦福教授)Robed Sedgewick寫的,很實用(所有演算法都用很短小的程序寫出來了)易讀,有c,c++和java語言版。很適合程序員。
難度: 1 > 2 > 3
1可以作為興趣愛好讀, 建議讀2學習理論,讀3學習演算法實現。
㈧ 演算法和數據結構有什麼推薦的入門書籍嗎演算法的話對數學要求都有哪些
數據結構C語言版-清華大學嚴蔚敏版 就可以,對數學的要求很簡單,會排列組合就行,至於效率的計算等問題在工作中用得很少,只有研究所之類的才用
㈨ 機器學習的演算法和普通《演算法導論》里的演算法有什麼本質上的異同
作者:董可人
鏈接:http://www.hu.com/question/24976006/answer/29682806
來源:知乎
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請註明出處。
演算法導論里的演算法本質上是對有精確解的問題,如何更有效率地求得這個解。這個效率可以是計算時間更短,也可以是計算過程所需要的空間更少。
一個簡單的例子是,給定一個亂序數組,如何快速的將其按從小到大的順序重新排列,或者找到其中的中位數。這些問題都有確定且唯一的答案,一般都會有一個笨方法(窮舉或遍歷),只要一步一步來就可以解,所謂演算法只是如何精簡步驟,更快更省事地找到這個解。這些演算法處理的數據也都是結構簡潔且干凈的類型,比如數組,二叉樹,圖之類的數據結構。數據規模對於這些演算法而言,影響的是計算所需的時間和空間,不會因為規模改變而影響演算法本身的邏輯以及計算的結果。
機器學習要解決的問題一般沒有精確解,也不能用窮舉或遍歷這種步驟明確的方法找到解,而且需要強調的是「學習」這個屬性,即希望演算法本身能夠根據給定的數據或計算環境的改變而動態的發現新的規律,甚至改變演算法程序的邏輯和行為。
舉例來說,可以是把一千份文檔歸類到不同的幾個類別里。最簡單的可以是給定幾個類別,比如新聞,小說,詩歌等,演算法來根據文章內容自動劃分到對應的類別里。這里可以看出這個問題即使讓人做,也有很多模糊不能確定的地方,比如一篇法制晚報上的犯罪紀實是應該劃到新聞,還是小說呢?或者說一篇長詩比如荷馬史詩是應該歸在小說還是詩歌呢?機器學習演算法想要解決的,就是根據從文章內容里找到的規律,來自動的給出一個劃分。而不同演算法可以給出不同的解,這些解都可以是「正確」的,所以一般還需要人為設計一個評判標准來決定孰優孰劣。
也可以不事先給定類別,而是讓演算法自己去發現文章中的規律,把相似度高的文章劃分到一起。這樣不同的演算法可能給出不同數量的類別劃分,可能是三個,四個,或者五個,也都可以是「正確」的劃分。甚至什麼是「相似度」,不同演算法也可以給出不同解釋,可以是名詞動詞形容詞的詞頻及比例,也可以是句子的語法結構等。
更進一步的,你可能還希望這個演算法能夠用來判斷一份新的文檔的類別。而輸入的新文檔越多,也會進一步擴大初始數據集的規模,規模變大以後,原來數據中不明顯的規律可能就變明顯了。比如說原來一千份文檔中只有一篇議論文,可能大多演算法都無法把它單獨劃出一個類別,但當你持續輸入一百份議論文後,數據中議論文的比例就變成了101/1100,差不多10%,這時候演算法就應該劃分出單獨的議論文類別。在這個意義上,數據本身也對演算法有很大的影響,這也是和演算法導論中的演算法的一個本質區別。
技術上說,演算法導論中的演算法關注點在數據結構和計算復雜度,屬於離散數學的一個分支,不涉及微積分等高等數學概念。機器學習的演算法本身是基於概率,統計和優化(optimization)等理論和技術,從這個角度上說給人感覺更「數學」一點。
在具體的實現細節上,機器學習的演算法會大量應用演算法導論中的技術來改進計算效率。但需要強調這僅僅是對底層實現來說,在演算法本身的邏輯上,二者沒有太多聯系。換句話說,演算法導論中的技術可以幫助你寫出更快的程序來運行機器學習演算法,但是這對機器學習要解決的問題本身是沒有什麼幫助的。熟練使用二叉樹散列表,准確估算一個圖演算法的復雜度,都沒有任何可能幫助你猜到在女朋友過生日時送什麼禮物最好(使用了機器學習演算法的淘寶君卻很可能知道!)。因此不要把它們看成是搭積木拼構件的關系。
最後,如果以上解釋仍然讓你費解,那麼還有一個更通俗的解釋:演算法導論是教你如何數數,而機器學習基本上相當於星座算命。一個很機械,一個靠忽悠,差不多就是這樣吧。
具體分析見鏈接:http://www.hu.com/question/24976006