㈠ C語言的學習需要牽扯的數學知識有哪些
C語言用到的數學知識是很廣泛的。我記得我們的老師說過:「如果一個學數學的跟一個學編程的去應聘,受聘橋芹滲的一定是那個學數學的。」所以學好編程的基礎是學好數學,作為ACMer,這里我簡單地說幾個:
1.微積分。這是最基礎的,一定要學好。
2.離散數學,離散數學中有很多東西都需要,當然我在這里不能舉例說明應該學習哪些,因為都很重要。
3.線性代數,線性代數中的矩陣,線性運算等等。
4.幾何計算,不要以為編程只是代數的編程,我們經常也會遇見很多的幾何問題,比如空間運動,求三維立體圖形的體積等等。
當然,有更多的數學知識是不在書本上的:比如:約瑟夫問題,背包問題,pick定理等等。
如果你想學編程的話,建議你去北大OJ平台,或者其他的平台做些題,這樣對你的編程能力有很大敏脊的首激提高的。這是北大OJ平台的網址:
http://poj.org/problemlist
㈡ 編程與數學的關系
編程和數學,本質上來說,它們之間的聯系是非常緊密的,最核心的說法就在於,數學是理論,編程是使用理論的工具。但是孩子學習編程,是能夠反哺數學的。更准確地說,就是在學習編程知識的同時,也能對數學概念進行更直觀的理解。
軟體編程是基於數學模型的基礎上面的,所以,數學是計算機科學的主要基礎。軟體編程中不僅許多理論是用數學描述的,而且許多技術也是用數學描述的。從計算機各種應用的程序設計方面考察,任何一個可在存儲程序式電子數字計算機上運行的程序,其對應的計算方法首先都必須是構造性的,數據表示必須離散化,計算操作必須使用邏輯或代數的方法進行,這些都應體現在演算法和程序之中。此外,到現在為止,演算法的正確性、程序的語義及其正確性的理論基礎仍然是數理邏輯,或進一步的模型論。真正的程序語義是模型論意義上的語義。於是軟體編程思想運行的嚴密性、學科理論方法與實現技術的高度一致是計算機科學與技術學科同數學學科密切相關的根本原因。從學科特點和學科方法論的角度考察,軟體編程的主要基礎思想是數學思維,特別是數學中以代數、邏輯為代表的離散數學,而程序技術和電子技術僅僅只是計算機科學與技術學科產品或實現的一種技術表現形式。
讓孩子更早的接觸編程,無疑是最大的優勢。孩子在學習編程知識的同時培養孩子邏輯思維能力、試錯能力、專注能力和動手解決問題的能力。
選擇編程,受益一生。愛編程,會學習。了解編程就來愛上編程智能學習中心。
㈢ 編程 和 數學 的關系是什麼
數學是基礎學科,有豐富的數學基礎可以對理解編程中的邏輯有幫助。
編程對不同的人有不同的意義:
對於一般的程序員就是代碼的產出和可運行程序(數學在這裡面並不是特別重要,更重要的是對各種框架的理解、熟練掌握、設計模式等)。
對於演算法工程師來說,數學就很重要了(例如機器學習,密碼學,計算機圖形學等,當然這個對題主來說還太遙遠)。
題主說的函數實際上就是為了實現目的的一種封裝形式,而遞歸只是在函數中調用自身(當然需要終止條件)。
(3)編程牽扯到數學哪些方面擴展閱讀:
編程的核心是什麼,總結起來就是編程思想和邏輯演算法,編程思想需要不斷的總結歸納,框架思想也是編程思想的一種,需要從千千萬萬的代碼邏輯種抽象出解決問題的方案或者框架。
說的通俗一點就是解決問題的能力,問題也是分為很多種,有直接簡單的問題,有長期復雜的問題,也有未來還沒有發生的問題,解決方案有直接的辦法,也有通過設計框架來解。
所以格局低一點的人可能就是著重眼前實際問題的解決,格局高的人就會想著設計一個框架也就是業內常說的輪子來規避類似問題的發生,這就是普通程序員和頂級高手的差距,出發點和格局都不在一個步調上。
至於具體解決問題的模式設計,就會涉及到邏輯演算法,簡單的可能非常容易理解,復雜一點或者多種組合了基本上就需要用到數學知識了,所以只有認識到這一層面才會覺得數學這東西對於編程顯得特別重要。
特別針對一些復雜問題或者解決根本問題上,由於自身條件或者所處的工作崗位決定,有些程序員甚至一輩子都不會接觸到,但並不意味著不存在,數學對於編程邏輯的重要性不言而喻。
不管是分析解決問題,還是喜歡從更大的格局來解決問題,不要小瞧數學對編程的影響,雖然不是每個編程角落都能和數學扯上關系,但對於重要場景一定不會缺席,但也沒有必要為了學習編程專門去學一遍數學,如果是在校學生看到可能意義會更加重大一些。
所以講數學邏輯好的人,學習編程是有一定優勢的,喜歡邏輯推理的人從骨子看是非常適合做一名優秀的程序員,當然真的優秀,還需要發自內心的熱愛。
參考資料來源:
知網論文-數學演算法對計算機編程優化的分析與研究
㈣ 編程和數學的關系有多大想好好學學編程,但是數學底子很差,求解,謝謝。
對於一般的程序員來說,高中數學再加上關系代數,就足夠了。幾乎所有常用的演算法都停留在高中數學的水平,比如各種排序演算法、搜索演算法;關系代數主要用在資料庫編程方面。
高等數學和線性代數只在特定的工程計算編程(應力含鬧分布、疲勞度、化學反應分析等等)和一些金融領域(衍生品定價、風險模型分析等清灶等)會被用到。
所以,你有高中的數學知識,再學習一下關系代數,就談正罩能應付絕大多數編程里的數學問題了。
㈤ 編程所需要的數學知識
計數的能力: for循環中經常用, 小學生都會。
數字的加減乘除 : 每種編程語言都會內置支持, 都不需要你自己算
余數和模: 偶爾會用得到
集合運算: 交集、並集、差集 , 編程中用的不多。
布爾運算: AND , OR, 非
各種進制: 二進制、十進制、十六進制
還有哪些? 我想不起來了, 歡迎補充。
當然這和我從事的編程領域有極大關系, 如果我做的不是Web開發, 而是搜索,游戲, 安全,演算法,人工智慧等, 那對數學的要求估計就開始飆升了。
其實計算機的基礎是數學, 只是我們一直在應用層編程, 體會不到罷了。
比如說我們日常使用的計算機,絕大部分都是所謂馮諾依曼結構(參見文章《馮·馮諾依曼計算機的誕生》) ,這個結構可以說是圖靈機這個概念機器的具體實現,而圖靈機就是一個純數學的東西啊 ,沒有圖靈機這么偉大的抽象作為數學基礎, 現代的計算機是製造不出來的。
再比如說密碼領域需要很多數論的知識,RSA演算法就涉及到大素數的分解;
我們常用的Mysql, Oracle 等關系資料庫的底層基礎是離散數學的笛卡爾乘積;
通信系統中很重要的一個原理就是傅里葉變換。
編譯器會用到有限狀態機;
數據的壓縮會用到各種數學的演算法;
項目管理中的進度管理,甘特圖數學基礎就是圖論。
㈥ 編程與數學的關系是什麼
你好,我是計算機專業大三的學生,我來說說在我的印象中數學的關系:
第一,編寫程序體現的是一個人的邏輯思維,既然涉及到邏輯,必然會與數學有些關系。但是與數學關系的深淺要與你所涉及的方面有關。
第二,編程中必須要學的數學:
1.最基本的數字與運算知識:二進制的概念(在哈夫曼樹,哈弗曼編碼等方面有直接的應用),取余的概念(在循環鏈表,隨機數方面有應用),基礎平面幾何(在繪制窗口,繪制曲線,自定義按鈕等圖形化的地方會用到),還有些很基礎的數學知識絕對不超出初中的范疇。
2.計算機中的數學知識:主要的一門叫做離散數學,講的是邏輯代數的相關知識,其實在真正的編程中不會直接體現這門課的重要性,對於初學者只要知道:與或非是怎麼回事,什麼是集合就可以了。離散數學還涉及到一些圖與樹的概念,我現在先把這些劃歸到數據結構中。
3.我前面說了,編程與你的需求有直接的關系,有些編程領域與數學的知識密不可分:
1)搞底層:舉個例子,如果你想設計一套你自己的windows字體,那麼肯定涉及到字體平滑,字體平滑就涉及到一個很難的數學知識:插值。這個知識在數值分析中講解,而且沒有高等數學的基礎,這門課想學會的可能性幾乎是零。。。這門課主要解決的是高等數學中的問題如何用計算機解決,比如:泰勒插值,拉格朗日插值,求解一般方程或微分方程的解,還有的我忘了,反正都是很難的知識。而底層的很多編程都是以這些為基礎的。
2)搞圖形學:CG技術由於在游戲中的如日中天,使得很多初高中生對圖形學神往已久,但卻不知計算機圖形學的知識是建立在很多大學數學課程的基礎上的。尤其是圖形學理論的學習,沒有線性代數的基礎是根本看不懂的。而在三維視圖方面又要涉及到高等數學中極坐標的知識。很多演算法,比如梁-Baskey演算法對於平面幾何分析水平的要求是非常高的!如果你想搞游戲設計,動畫電影(這個是要寫腳本程序的,否則畫面哪能那麼好),我勸你還是到了大學再深入學習吧。
3)搞演算法:學習演算法與其說數學要好,還不如說成是智力要好。。。比如分治法,動態規劃演算法,回溯法等對於問題的前期分析要求很高,尤其是列出遞歸方程,這些我覺得是在考智力。還有一些,比如圖演算法,樹的應用,排序,查找,這些知識涉及到計算機專業的另一門課程:數據結構,這門課是計算機專業的核心課程之一,也是專業與非專業的最大區別。這門課對數學要求不高,但對於一個人的思維要求比較高。還有像計算幾何的問題,那就是純數學問題了。。。
4)搞密碼學:我不搞這方面,而且也沒研究過,但聽說這方面對數學要求極高!由於我的數學比較好,別人還推薦過我去搞這方面,但是我一想到面對的都是數字,我就退縮了。。。
以上就是我所知道的與數學有關的計算機分支,每個方面都夠人學一輩子,而且學好了,前途與錢途都是大大的!
第三,這么多方面都跟數學有關,那編程豈不沒法學了?還有些方面對於數學要求相對較低,我說的相對較低是由於不管哪方面都會涉及到一些基礎的數學演算法。總的來說,越往高層,對數學的要求越低,比如MFC,那些網路編程,系統編程都是封裝好的,但對於一個系統來說整體的規劃和設計更關鍵,就是說前期的需求分析、邏輯結構設計和物理結構設計比編碼更重要,當然工資也更高。。。
最後,我想給你提些學習編程的建議:
1)由於你的年齡還小,中國的教育體質問題,希望你不要把太多的精力放在這上面。。。我想你懂的。雖然聽說過哪個孩子做了個游戲之後成了百萬富翁,但這么多年了,似乎只有他一個,不要懷疑自己的實力,但更不要幻想你有這個運氣。。。
2)編程注重邏輯思維,你才是初中生,大腦的發育不知是否成熟(絕不是說你智力低,你應該知道大腦發育是有階段的吧),所以要以語言的基礎為主,這個對數學要求不高。
3)請選一門語言去練習,編程注重實踐,沒有實踐只有理論那就等於沒學,所以一定多練練。至於語言,我推薦學習C或C++,至於C與C++是怎麼回事,怎麼學習,這是另一個比較難的話題。。。注意別上來就學VC++(MFC),否則你會一事無成!
4)編程很枯燥,所以要耐得住性子,不要一見到難題就退縮,一見到不會的概念就把書扔了,不會的時候請多看看基礎,八成是語言基礎不到位。
就寫這么多吧,希望我的回答對你有幫助。你若有什麼問題還可以繼續問,若是編程過程中遇到什麼問題也可以問我,很歡迎的!
㈦ 學習編程需要會哪些數學知識
個人觀點:編程,無論是用低級的匯編、C語言還是現在的OOP語言,與《數字電路》和《離散數學》關系不是太大。這兩門號稱計算機學科的基礎,實際上是用於研究計算機的組成原理、架構之類的「深層次」科目。而編程的話,你只要了解語言的基本語句結構、能將問題分解成模塊關用語言描述之就可以了。要說與邏輯的關系吧,也有,編程的時候經常用到邏輯判斷以發展程序走向,這是與數學運算不相同的。
㈧ 計算機編程涉及數學的什麼知識點
數學跟計算機的關系非常密切
這其中主要的聯系就是 邏輯思維
舉例:與或非(簡單命題 高一)
數學中的函數與計算機的函數有相似的表述
但從實際應用來說 計算機編程的函數比數學的范圍更廣
這是必然的 因為計算機函數包括了絕大多數數學函數
除此之外 還可以做命令操作
舉例:y=f(x)
計算機編程中可以把 對應法則f 做成 DeleteFile(刪除一個文件);
x 做成參數 文件名
而得到的結果給y 那麼y就是布爾類型 是否成功刪除~~
至於樓上所說 數學在數據結構中的體現嘛~~
我還讀高中 還沒發現什麼~~ 不過我想有是一定的
他們的區別在於應用性
數學著重於運算 計算機著重於幫助運算 而現在計算機主要應用在 操作和應用~~
總之 數學、物理都是計算機的基礎 沒有這兩科 計算機這東西也不復存在了
㈨ 編程跟數學那些有關初中有那些高中有那些
一、思想方法
初中和高中階段學數學培養的思慧念想方法,都與編行肆程有關。
二、知識
1、初中為編程前帶困准備了計算公式,如多項式計算,函數,二次函數
2、高中階段任何代數問題都是編程的准備,如函數、三角函數和演算法一章
㈩ 計算機編程跟數學有多大關系
題主你指的數學是哪方面呢?概率論?數論?線性代數?微積分?離散數學....光把這些只是翻一下看懂就要個幾年了,想學會學好?對不起,可能學到鬍子白半截身子入土了都不一定到你說的學好的程度。
所以對大多數人來說,在數學方面都不太可能取得什麼很深的造詣。直白一點能學好數學的人太少。數學是又深奧又費解學習成本巨大需要耗費大量時間學完不用立馬就忘的學科。所以說數學重要,先問問你自己能不能學會。
其次,計算機學科跟數學根本就不是一門學科,不存什麼包含關系。計算機編程有自己的理論體系,很多跟數學關系不大。學好編程最重要的是對你學的編程語言的深刻理解和工具SDK的爛熟於心熟練運用。每個語言都有自己的設計理念,不存在什麼好學的編程語言。
所以說,題主,你想得太遠了。軟體開發需要用到的知識比數學重要的有太多了。比如英語快速閱讀能力,程序調試技術,網上搜索資料的能力。而數學對於大多數人來說是最難學也是最不重要的知識,基本上是學了就忘忘了就扔扔了也沒感覺的那種,很多搞編程的可能一輩子也用不到數學知識。為什麼?理解C++的指針和多態需要數學嗎?一個復雜的系統架構也不需要半點數學知識,而你就是看不懂。
還有就是程序調試技術,很多IDE給出的出錯語句非常費解,什麼指針為空,數組越界,內存溢出,SDK找不到,你沒經驗時打死你也看不懂你的編程工具提示的是什麼。這時你那高大上的數學真是P用沒有,它能幫你排查錯誤找出程序崩掉的原因嗎?我看不行吧,你還是得到論壇網路去問人家這些基本的問題。
在你擔心數學好不好之前,你更應該關心編程環境怎麼搭建,連IDE都搞不定不知道程序怎麼跑起來你還搞什麼呀,下一步就是程序基本的語法和SDK庫函數的掌握,基本SDK都不知道什麼意思怎麼去用,如字元串函數,文件讀寫和資料庫常用操作,這些你都不會你還有學下去的必要嗎?還有更重要的更基本的程序調試技術,程序老出錯老崩潰怎麼辦呀,哪裡變數為空了內存寫錯了?為什麼程序老編不過去呀,誰能幫幫我呀!!!這個時候你發現那牛逼的數學知識真是屁用沒有,你還是感嘆自己基本功底不行經驗太少,這個時候打死你也不會再關心數學好不好的問題了。
如果說用到數學的大概只有3D游戲引擎,很智能的人工智慧,如格鬥游戲的電腦應對玩家的復雜AI,生化危機中僵屍怪物的配合商量運用策略包抄玩家和記憶功能,還有航空航天領域這樣高精尖技術學科才會用到復雜一點的數學知識。而這些都是計算機專家才要掌握的內容。所以題主你是想多了,等你達到圖靈的大師級別再考慮數學問題吧,在這之前,還是先關心下自己程序為什麼編不過老是報錯的問題吧